OpenAPI

Test the Akoya API v2 and Token endpoints using the OpenAPI specs below. Refer to the Getting started page for instructions on obtaining an authorization code for the token endpoint.

Akoya provides secure (TLS v1.2) access to RESTful APIs that are based on the API/Data Structures as defined by the Financial Data Exchange. All data requests use standard GET and POST methods and must include authorization in the header. All responses are returned in JSON format.

Notes

Tools such as Stoplight Studio, Swagger UI, or your choice of editors may be used.

If using Swagger UI through a browser without a proxy, the Akoya endpoints will return a CORS error such as: No Access-Control-Allow-Origin header is present on the requested resource.
For more information, see CORS Requirements for "Try It Out" | SwaggerHub.

📘

How to download

The code blocks below contain OpenAPI specs for Akoya token and product endpoints. By hovering on the code, a clipboard icon will appear on the top right. Use it to copy the code. Then paste into your favorite text or code editor and save as a YAML file.

openapi: 3.1.0
info:
  title: Akoya APIs v2
  version: '2.0'
  summary: Akoya API v2
  description: 'Akoya APIs for data recipients including token, data access, and transaction endpoints. Default servers are set to override for the Akoya sandbox environment.'
  contact:
    name: API Support
    url: 'http://www.akoya.com'
    email: [email protected]
tags:
  - name: Akoya products
    description: Akoya products
security:
  - basicAuth: []
servers:
  - url: 'https://sandbox-products.ddp.akoya.com'
    description: Sandbox server
  - url: 'https://products.ddp.akoya.com'
    description: Products server
paths:
  '/accounts-info/{version}/{providerId}':
    get:
      summary: Account information
      tags:
        - Akoya products
      operationId: get-accounts-info
      description: "Get basic account information including accountId, masked account number, type, description, etc.\n\nTo view the response schema, select the `200` response below. Then pick an option for annuity, deposit, insurance, investment, loan, and line of credit account types. \n\nFor an example payload response, see the `200` example response below the `Try it` feature. The example is from a deposit account but all account types are supported by this endpoint.\n\n> \U0001F6D1\n> \n> The *id_token* should be used as the bearer token with this call."
      security:
        - bearerAuth: []
      responses:
        '200':
          description: OK
          headers:
            x-akoya-interaction-id:
              schema:
                type: string
              description: Akoya supplied interaction id used for logging and error tracking
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account-info'
      parameters:
        - schema:
            type: string
          in: query
          name: accountIds
          description: Account identifier(s) for the end-user
    parameters:
      - schema:
          type: string
          default: v2
        name: version
        in: path
        required: true
        description: Akoya product version
      - schema:
          type: string
          default: mikomo
        name: providerId
        in: path
        required: true
        description: End-user's data provider
  '/balances/{version}/{providerId}':
    get:
      summary: Balances
      tags:
        - Akoya products
      operationId: get-balances
      description: "Account information that includes balances and rates of bank accounts, credit cards, loans, investments, and more.\n\nTo view the response schema, select the `200` response below. Then pick an option for annuity, deposit, insurance, investment, loan, and line of credit account types. \n\nFor an example payload response, see the `200` example response below the `Try it` feature. The example is from a deposit account but all account types are supported by this endpoint.\n\n> \U0001F6D1\n> \n> The *id_token* should be used as the bearer token with this call."
      security:
        - bearerAuth: []
      responses:
        '200':
          description: OK
          headers:
            x-akoya-interaction-id:
              schema:
                type: string
              description: Akoya supplied interaction id used for logging and error tracking
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/balances'
      parameters:
        - schema:
            type: string
          in: query
          name: accountIds
          description: Account identifier(s) for the end-user
    parameters:
      - schema:
          type: string
          default: v2
        name: version
        in: path
        required: true
        description: Akoya product version
      - schema:
          type: string
          default: mikomo
        name: providerId
        in: path
        required: true
        description: End-user's data provider
  '/transactions/{version}/{providerId}/{accountId}':
    get:
      summary: Transactions
      tags:
        - Akoya products
      operationId: get-transactions
      description: "The transactions API allows you to retrieve transaction history of consumer-permissioned accounts.\n\n> \U0001F6D1\n> \n> The *id_token* should be used as the bearer token with this call.\n\nFor more information on how to paginate transaction results, please see: [Pagination](https://docs.akoya.com/v2/docs/pagination)"
      security:
        - bearerAuth: []
      responses:
        '200':
          description: OK
          headers:
            x-akoya-interaction-id:
              schema:
                type: string
              description: Akoya supplied interaction id used for logging and error tracking
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transactions'
      parameters:
        - name: startTime
          in: query
          description: 'ISO 8601 date format in UTC time zone. If blank, the default value (current date - 15 calendar days) is used. If a value is specified, endTime is required.'
          required: false
          schema:
            type: string
            example: '2020-03-30T04:00:00Z'
            format: date-time
        - name: endTime
          in: query
          description: 'ISO 8601 date format in UTC time zone. If blank, the default value (current date) is used. If a value is specified, startTime is required.'
          required: false
          schema:
            type: string
            format: date-time
            example: '2021-03-30T04:00:00Z'
        - name: offset
          in: query
          description: The number of items to skip before the first in the response. The default is 0.
          schema:
            type: string
            default: '0'
        - name: limit
          in: query
          description: The maximum number of items to be returned in the response. The default is 50.
          schema:
            type: string
            default: '50'
    parameters:
      - schema:
          type: string
          default: v2
        name: version
        in: path
        required: true
        description: Akoya product version
      - schema:
          type: string
          default: mikomo
        name: providerId
        in: path
        required: true
        description: End-user's data provider
      - schema:
          type: string
        name: accountId
        in: path
        required: true
        description: End-user's accountId
  '/accounts/{version}/{providerId}':
    get:
      summary: Investments
      tags:
        - Akoya products
      operationId: get-accounts
      description: "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.\n\nTo view the response schema, select the `200` response below. Then pick an option for annuity, deposit, insurance, investment, loan, and line of credit account types. \n\nFor an example payload response, see the `200` example response below the `Try it` feature. The example is from an investment account but all account types are supported and returned by this endpoint.\n\n> \U0001F6D1\n> \n> The *id_token* should be used as the bearer token with this call."
      security:
        - bearerAuth: []
      responses:
        '200':
          description: OK
          headers:
            x-akoya-interaction-id:
              schema:
                type: string
              description: Akoya supplied interaction id used for logging and error tracking
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/investments'
      parameters:
        - schema:
            type: string
          in: query
          name: accountIds
          description: Account identifier(s) for the end-user
    parameters:
      - schema:
          type: string
          default: v2
        name: version
        in: path
        required: true
        description: Akoya product version
      - schema:
          type: string
          default: mikomo
        name: providerId
        in: path
        required: true
        description: End-user's data provider
  '/customers/{version}/{providerId}/current':
    get:
      operationId: customer-info
      tags:
        - Akoya products
      description: "This product supports use cases such as payment enablement, account opening, or lending & credit enhancement. Responses return information about the authorized end-user, the customer associated with the `id_token` used in the call. This information may include, but is not limited to, the customer identifier, name, email, address, and phone number.\n\n<br>\n\nTo see the response schema, select the `200` response below. For an example payload response, see the `200` example response below the *Try it* feature. \n\n> \U0001F6D1\n> \n> The *id_token* should be used as the bearer token with this call."
      summary: Customer info
      parameters:
        - name: version
          in: path
          description: Akoya product version
          required: true
          schema:
            type: string
            default: v2
        - name: providerId
          in: path
          description: End-user's data provider
          required: true
          schema:
            type: string
            default: mikomo
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Data describing current authenticated customer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customer'
              examples:
                example-1:
                  value:
                    customer:
                      customerId: '1221963501'
                      name:
                        first: Firstname
                        middle: P
                        last: Familyname
                      addresses:
                        - line1: 101 Address
                          city: City
                          state: NC
                          postalCode: 27534-8861
                      telephones:
                        - number: 888-888-8888
                      email:
                        - [email protected]
                        - [email protected]
                      accounts:
                        - accountId: '1058527205'
                          relationship: PRIMARY_JOINT
                        - accountId: '1058566233'
                          relationship: SECONDARY
          headers:
            x-akoya-interaction-id:
              schema:
                type: string
              description: Akoya tracking id for logging or support.
  '/payments/{version}/{providerId}/{accountId}/payment-networks':
    get:
      tags:
        - Akoya products
      summary: Payments
      description: "This product supports use cases such as payment enablement or account opening. The response includes identifiers necessary to make ACH and RTP payments. Identifiers include account number, routing number, identifier type (actual or tokenized account number), and payment network type such as ACH or RTP.\n\n<br>\n\nTo see the response schema, select the `200` response below. For an example payload response, see the `200` example response below the *Try it* feature. \n\n> \U0001F6D1\n> \n> The *id_token* should be used as the bearer token with this call."
      operationId: payment-networks
      parameters:
        - name: version
          in: path
          description: Akoya product version
          required: true
          schema:
            type: string
            default: v2
        - name: accountId
          in: path
          description: Account identifier
          required: true
          schema:
            type: string
        - name: providerId
          in: path
          description: End-user's data provider
          required: true
          schema:
            type: string
            default: mikomo
      deprecated: false
      security:
        - bearerAuth: []
      responses:
        '200':
          description: Information required to execute a payment transaction against this account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountPaymentNetworkList'
              examples:
                paymentNetworks:
                  value:
                    paymentNetworks:
                      - bankId: '125000024'
                        identifier: '454992210071'
                        identifierType: ACCOUNT_NUMBER
                        type: US_ACH
                        transferIn: true
                        transferOut: true
                No paymentNetworks:
                  value:
                    paymentNetworks: []
          headers:
            x-akoya-interaction-id:
              schema:
                type: string
              description: Akoya tracking id for logging or support.
        '401':
          description: 602 - Customer does not have authorization to perform this action. The customer may have revoked access through provider and would need to reauthenticate.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              example:
                code: 602
                message: Customer not authorized
          headers:
            x-akoya-interaction-id:
              schema:
                type: string
              description: Akoya tracking id for logging or support.
        '403':
          description: 403 - The `providerId` is wrong or your app doesn't have a subscription to the provider.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              example:
                code: 403
                message: Subscription not found
          headers:
            x-akoya-interaction-id:
              schema:
                type: string
              description: Akoya tracking id for logging or support.
        '404':
          description: 701 - Account not found. The `accountId` may be wrong.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              example:
                code: 701
                message: Account not found
          headers:
            x-akoya-interaction-id:
              schema:
                type: string
              description: Akoya tracking id for logging or support.
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
    bearerAuth:
      description: The `id_token` should be used as the bearer token in this call.
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    accountInfo:
      title: Account information
      type: object
      properties:
        accountId:
          description: Long-term persistent identity of the account. Not an account number. This identity must be unique to the owning institution.
          type: string
        accountType:
          description: 'The type of an account. For instance, CHECKING, SAVINGS, 401K, etc.'
          type: string
        accountNumberDisplay:
          description: Account display number for the end user’s handle at owning institution. This is to be displayed by the Interface Provider.
          type: string
        currency:
          $ref: '#/components/schemas/currency'
        description:
          type: string
        fiAttributes:
          type: array
          items:
            $ref: '#/components/schemas/fiAttribute'
        nickname:
          description: Name given by the user. Used in UIs to assist in account selection
          type: string
        productName:
          type: string
          description: 'Marketed product name for this account.  Used in UIs to assist in account selection          '
        status:
          type: string
          enum:
            - OPEN
            - CLOSED
            - PENDINGOPEN
            - PENDINGCLOSE
            - DELINQUENT
            - PAID
            - NEGATIVECURRENTBALANCE
          description: The status of an account.
        lineOfBusiness:
          description: 'The line of business, such as consumer, consumer joint, small business, corporate, etc.'
          type: string
        balanceType:
          type: string
          description: 'ASSET (positive transaction amount increases balance), LIABILITY (positive transaction amount decreases balance)'
          enum:
            - ASSET
            - LIABILITY
        interestRate:
          description: Interest Rate of Account
          type: number
        interestRateType:
          type: string
          enum:
            - FIXED
            - VARIABLE
          description: The type of interest rate. FIXED or VARIABLE.
        interestRateAsOf:
          type: string
          description: Date of account’s interest rate
          format: date-time
        lastActivityDate:
          type: string
          description: Date that last transaction occurred on account
          format: date-time
        micrNumber:
          description: MICR Number
          type: string
        parentAccountId:
          description: Long-term persistent identity of the parent account. This is used to group accounts.
          type: string
        priorInterestRate:
          description: Previous Interest Rate of Account
          type: number
        transferIn:
          type: boolean
          description: Account is eligible for incoming transfers
        transferOut:
          type: boolean
          description: Account is eligible for outgoing transfers
      required:
        - accountId
        - accountType
        - accountNumberDisplay
        - description
        - nickname
        - productName
        - status
        - lineOfBusiness
        - balanceType
        - interestRate
    account-info:
      title: ''
      oneOf:
        - properties:
            depositAccount:
              $ref: '#/components/schemas/depositAccount'
        - properties:
            loanAccount:
              $ref: '#/components/schemas/loanAccount'
        - properties:
            locAccount:
              $ref: '#/components/schemas/locAccount'
        - properties:
            investmentAccount:
              $ref: '#/components/schemas/investmentAccount'
        - properties:
            insuranceAccount:
              $ref: '#/components/schemas/insuranceAccount'
        - properties:
            annuityAccount:
              $ref: '#/components/schemas/annuityAccount'
      examples: []
    accountPaymentNetworkList:
      title: Array of account payment networks
      description: An optionally paginated array of payment networks supported by the account
      allOf:
        - type: object
          properties:
            paymentNetworks:
              type: array
              items:
                $ref: '#/components/schemas/accountPaymentNetwork'
              description: Array of payment networks
    accountPaymentNetwork:
      title: Payment Network Supported by Account
      description: This provides details required to execute a transaction against the account within the payment network
      type: object
      properties:
        bankId:
          type: string
          description: Bank identifier used by the payment network ie. Routing Number
        identifier:
          type: string
          description: 'The number used to identify the account within the payment network. If identifierType is ACCOUNT_NUMBER, this is the account number.'
        identifierType:
          type: string
          description: Type of identifier
        type:
          type: string
          description: Type of payment network
        transferIn:
          type: boolean
          description: Can transfer funds to the account using this information
        transferOut:
          type: boolean
          description: Can transfer funds from the account using this information
    balances:
      title: ''
      oneOf:
        - properties:
            depositAccount:
              $ref: '#/components/schemas/depositBalance'
        - properties:
            loanAccount:
              $ref: '#/components/schemas/loanBalance'
        - properties:
            locAccount:
              $ref: '#/components/schemas/locBalance'
        - properties:
            investmentAccount:
              $ref: '#/components/schemas/investmentBalance'
        - properties:
            insuranceAccount:
              $ref: '#/components/schemas/insuranceBalance'
        - properties:
            annuityAccount:
              $ref: '#/components/schemas/annuityBalance'
      type: object
    balanceList:
      title: Investment Balance List
      type: object
      properties:
        balanceName:
          type: string
          description: Name of the balance.
        balanceDescription:
          type: string
          description: Description of balance.
        balanceType:
          type: string
          enum:
            - AMOUNT
            - PERCENTAGE
          description: The type of an investment balance. AMOUNT or PERCENTAGE.
        balanceValue:
          type: number
          description: Value of balance name.
        balanceDate:
          type: string
          description: Date as of this balance.
          format: date-time
        currency:
          $ref: '#/components/schemas/currency'
      required:
        - balanceName
        - balanceType
        - balanceValue
        - balanceDate
    annuityAccount:
      title: AnnuityAccount
      description: Annuity Account
      allOf:
        - $ref: '#/components/schemas/accountInfo'
        - type: object
          properties:
            annuityProductType:
              enum:
                - CURRENCY
                - SHARES
              type: string
            annuityValueBasis:
              enum:
                - FIXED
                - VARIABLE
              type: string
            paymentFrequency:
              type: string
              enum:
                - ANNUALLY
                - QUARTERLY
                - MONTHLY
                - WEEKLY
          required:
            - annuityProductType
            - annuityValueBasis
    annuityBalance:
      title: Annuity balances
      description: Data elements included with balances specific to annuity accounts
      allOf:
        - $ref: '#/components/schemas/annuityAccount'
        - type: object
          properties:
            annualIncrease:
              description: Percent or dollar amount of annual payment increase
              type: number
            annualIncreaseType:
              type: string
              enum:
                - FIXED
                - PERCENT
                - DOLLAR
            netPresentValue:
              description: Surrender or cash balance value
              type: number
            paymentAmount:
              description: Amount of the recurring payment
              type: number
            paymentEndDate:
              type: string
              description: Date last payment will be made
              format: date-time
            paymentStartDate:
              type: string
              description: Date of first payment; could be a future date
              format: date-time
            periodCertainGuarantee:
              type: string
              enum:
                - NO PERIOD CERTAIN
                - 5-YEAR
                - 10-YEAR
                - 20-YEAR
                - 30-YEAR
            totalPaymentCount:
              description: Total number of payments that will be produced by the annuity
              type: number
          required:
            - paymentAmount
            - paymentEndDate
            - paymentStartDate
    contribution:
      title: Contribution Entity
      type: object
      description: Describes how new contributions are distributed among the available securities.
      properties:
        securityId:
          type: string
          description: Unique identifier of security
        securityIdType:
          type: string
          description: Security identifier type
          enum:
            - CUSIP
            - ISIN
            - SEDOL
            - SICC
            - VALOR
            - WKN
        employerMatchPercentage:
          type: number
          description: Employer contribution match percentage
        employerMatchAmount:
          type: number
          description: Employer contribution match amount
        employeePreTaxAmount:
          type: number
          description: Employee pre‐tax contribution amount
        employeePreTaxPercentage:
          type: number
          description: Employee pre‐tax contribution percentage
        employeeAfterTaxAmount:
          type: number
          description: Employee after tax contribution amount
        employeeAfterTaxPercentage:
          type: number
          description: Employee after tax contribution percentage
        employeeDeferPreTaxAmount:
          type: number
          description: Employee defer pre‐tax contribution match amount
        employeeDeferPreTaxPercentage:
          type: number
          description: Employee defer pre‐tax contribution match percentage
        employeeYearToDate:
          type: number
          description: Employee total year to date contribution
        employerYearToDate:
          type: number
          description: Employer total year to date contribution
        rolloverContributionPercentage:
          type: number
          description: Rollover contribution percentage
        rolloverContributionAmount:
          type: number
          description: Rollover contribution Amount
      required:
        - securityIdType
        - employerMatchAmount
        - employeePreTaxAmount
        - employeeAfterTaxAmount
        - employeeYearToDate
        - employerYearToDate
    currency:
      title: Currency Entity
      type: object
      properties:
        currencyCode:
          description: Iso 4217 currency code.
          type: string
        currencyRate:
          description: Currency rate between original and converted currency.
          type: number
        originalCurrencyCode:
          description: Iso 4217 currency code.
          type: string
      description: Indicates the currency code used by the account. May also include currency rate.
    customer:
      description: Represents a customer (end-user)
      type: object
      properties:
        customer:
          type: object
          description: Represents a customer (end-user)
          properties:
            customerId:
              type: string
              description: Long-term persistent identity of the end-user. This identity must be unique to the owning institution
            name:
              type: object
              description: The end-user's name
              properties:
                first:
                  type: string
                  description: First or given name. This data element may contain first & last name if not separated.
                middle:
                  type: string
                last:
                  type: string
                prefix:
                  description: 'Name prefix, e.g. Mr.'
                  type: string
                suffix:
                  description: Generational or academic suffix
                  type: string
                company:
                  type: string
                  description: Company name
            addresses:
              type: array
              uniqueItems: true
              minItems: 1
              description: An array of the end-user's physical mail addresses
              items:
                type: object
                properties:
                  type:
                    description: The location type of an address
                    type: string
                    enum:
                      - BUSINESS
                      - HOME
                      - MAILING
                  line1:
                    type: string
                    description: May contain full address if not separated
                  line2:
                    type: string
                  line3:
                    type: string
                  city:
                    type: string
                  state:
                    type: string
                  postalCode:
                    type: string
                  country:
                    type: string
                    description: ISO 3166 Country Code
            telephones:
              type: array
              uniqueItems: true
              minItems: 1
              items:
                type: object
                properties:
                  number:
                    type: string
                  type:
                    type: string
                    enum:
                      - HOME
                      - BUSINESS
                      - CELL
                      - FAX
                  country:
                    type: string
                    description: Country calling codes defined by ITU-T recommendations E.123 and E.164
            email:
              type: array
              description: An array of the end-user's electronic mail addresses
              items:
                type: string
            accounts:
              type: array
              uniqueItems: true
              minItems: 1
              description: List of accounts related to this end-user
              items:
                type: object
                properties:
                  accountId:
                    type: string
                    description: Account ID of the related account
                  relationship:
                    type: string
                    description: Types of relationships between accounts and holders. Suggested values
                    enum:
                      - AUTHORIZED_USER
                      - BUSINESS
                      - FOR_BENEFIT_OF
                      - FOR_BENEFIT_OF_PRIMARY
                      - FOR_BENEFIT_OF_PRIMARY_JOINT_RESTRICTED
                      - FOR_BENEFIT_OF_SECONDARY
                      - FOR_BENEFIT_OF_SECONDARY_JOINT_RESTRICTED
                      - FOR_BENEFIT_OF_SOLE_OWNER_RESTRICTED
                      - POWER_OF_ATTORNEY
                      - PRIMARY_JOINT_TENANTS
                      - PRIMARY
                      - PRIMARY_BORROWER
                      - PRIMARY_JOINT
                      - SECONDARY
                      - SECONDARY_JOINT_TENANTS
                      - SECONDARY_BORROWER
                      - SECONDARY_JOINT
                      - SOLE_OWNER
                      - TRUSTEE
                      - UNIFORM_TRANSFER_TO_MINOR
    debtSecurity:
      title: DebtSecurity Entity
      description: Information about the debt security specific to the type of security
      type: object
      properties:
        parValue:
          type: number
          description: Par value amount
        debtType:
          type: string
          description: Debt type
          enum:
            - ASSET
            - COUPON
        debtClass:
          type: string
          description: Classification of debt
          enum:
            - TREASURY
            - MUNICIPAL
            - CORPORATE
            - OTHER
        couponRate:
          type: number
          description: Bond coupon rate for next closest call date
        couponDate:
          type: string
          format: date-time
          description: Maturity date for next coupon
        couponMatureFrequency:
          type: string
          description: When coupons mature
          enum:
            - MONTHLY
            - QUARTERLY
            - SEMIANNUAL
            - ANNUAL
            - OTHER
        callPrice:
          type: number
          description: Bond call price
        yieldToCall:
          type: number
          description: Yield to next call
        callDate:
          type: string
          format: date-time
          description: Next call date
        callType:
          type: string
          description: Type of next call
          enum:
            - CALL
            - PUT
            - PREFUND
            - MATURITY
        yieldToMaturity:
          type: number
          description: Yield to maturity
        bondMaturityDate:
          type: string
          format: date-time
          description: Bond Maturity date
      required:
        - debtType
        - debtClass
        - couponRate
        - couponDate
    depositAccount:
      title: DepositAccount
      description: Deposit Account
      allOf:
        - $ref: '#/components/schemas/accountInfo'
        - type: object
          properties:
            annualPercentageYield:
              description: 'Annual Percentage Yield. If account type = CD, required.'
              type: number
            term:
              type: integer
              description: Term of CD in months
            maturityDate:
              type: string
              description: 'Maturity date for CDs. If account type = CD, required.'
              format: date-time
      examples: []
    depositBalance:
      title: Deposit balances
      description: Data elements included with balances specific to deposit accounts
      allOf:
        - $ref: '#/components/schemas/depositAccount'
        - type: object
          properties:
            balanceAsOf:
              type: string
              description: As-of date of balances
              format: date-time
            openingDayBalance:
              description: Day's opening fund balance
              type: number
            availableBalance:
              description: Balance of funds available for use
              type: number
            interestYtd:
              description: YTD Interest
              type: number
            currentBalance:
              description: Balance of funds in account
              type: number
          required:
            - balanceAsOf
            - availableBalance
            - currentBalance
    depositTransaction:
      description: Deposit transaction
      allOf:
        - $ref: '#/components/schemas/transaction'
        - type: object
          properties:
            payee:
              type: string
              description: Payee name
            checkNumber:
              type: integer
              description: Check Number
            transactionType:
              type: string
              description: DepositTransaction Type
              enum:
                - CHECK
                - WITHDRAWAL
                - TRANSFER
                - POSDEBIT
                - ATMWITHDRAWAL
                - BILLPAYMENT
                - FEE
                - DEPOSIT
                - ADJUSTMENT
                - INTEREST
                - DIVIDEND
                - DIRECTDEPOSIT
                - ATMDEPOSIT
                - POSCREDIT
    equityGrant:
      title: equityGrant
      type: object
      properties:
        grantId:
          type: string
          description: Unique identifier of grant
        grantDate:
          type: string
          format: date-time
          description: Date grant was given
        grantType:
          type: string
          description: Type of grant
        seqNum:
          type: number
        grantPrice:
          type: number
          description: Grant price
        grantCurrencyCode:
          type: string
          description: 'Indicates the currency of grant USD vs AUD vs EUR etc (for share awards, you will still get a USD)'
        quantityGranted:
          type: number
          description: Number of options
        quantityOutstanding:
          type: number
        expirationDate:
          type: string
          format: date-time
          description: Date grant expires
        vestings:
          type: array
          description: 'An array of equityGrant vestings. Provides the past, present, and future vesting schedule and percentages.'
          items:
            type: object
            properties:
              vestedQuantity:
                description: Vested quantity (Vested shares total qty of vesting tranche)
                type: number
              vestedValue:
                type: number
                description: Vested balance at grant (aggregate of all vestings)
              vestingDate:
                type: string
                format: date-time
              vestExpireDate:
                type: string
                format: date-time
              vestedStatus:
                type: string
    fiAttribute:
      title: FiAttribute Entity
      description: Data provider-specific attribute
      properties:
        name:
          type: string
          description: Name of attribute
        value:
          type: string
          description: Value of attribute
      type: object
    error:
      title: Error Entity
      description: An error entity which can be used at the API level for error responses or at the account level to indicate a problem specific to a particular account.
      type: object
      properties:
        code:
          type: integer
          description: Long term persistent identifier which can be used to trace error condition back to log information
        message:
          type: string
          description: End user displayable information which might help the customer diagnose an error
    hateoasLink:
      title: HATEOAS Link
      description: REST application constraint (Hypermedia As The Engine Of Application State)
      type: object
      properties:
        href:
          type: string
          format: uri-reference
          description: URL to invoke the action on the resource
          example: 'https://api.fi.com/fdx/v4/accounts/12345'
        action:
          type: string
          enum:
            - GET
            - POST
            - PATCH
            - DELETE
            - PUT
          description: HTTP Method to use for the request
        types:
          type: array
          description: Content-types that can be used in the Accept header.
          items:
            type: string
            enum:
              - application/pdf
              - image/gif
              - image/jpeg
              - image/tiff
              - image/png
              - application/json
            example: application/json
      required:
        - href
    holding:
      title: An investment holding
      allOf:
        - type: object
        - type: object
          properties:
            assetClasses:
              type: array
              uniqueItems: true
              minItems: 1
              description: Percent breakdown by asset class.
              items:
                type: object
                properties:
                  assetClass:
                    type: string
                    enum:
                      - DOMESTICBOND
                      - INTLBOND
                      - LARGESTOCK
                      - SMALLSTOCK
                      - INTLSTOCK
                      - MONEYMARKET
                      - OTHER
                  percent:
                    type: number
                    description: Percentage of asset class that falls under this asset
            averageCost:
              type: boolean
              description: Cost is average of all purchases for holding.
            cashAccount:
              type: boolean
              description: 'If true, indicates that this holding is used to maintain proceeds from sales, dividends, and other cash postings to the investment account.'
            changeInPrice:
              type: number
              description: Change in current price compared to previous day's close
            currency:
              $ref: '#/components/schemas/currency'
            currentUnitPrice:
              type: number
            currentUnitPriceDate:
              type: string
              format: date-time
              description: Current unit price as of date
            description:
              type: string
              description: Description of the holding
            expirationDate:
              type: string
              description: 'For CDs, bonds, and other time-based holdings.'
              format: date-time
            faceValue:
              type: number
              description: Required for bonds. Face value at the time of data retrieved.
            fiAssetClasses:
              type: array
              description: Percent breakdown by FI-specific asset class percentage breakdown
              items:
                type: object
                properties:
                  assetClass:
                    type: string
                    description: FI-specific asset class
                  percent:
                    type: number
                    description: Percentage of asset class that falls under this asset
            fiAttributes:
              type: array
              uniqueItems: true
              minItems: 1
              items:
                $ref: '#/components/schemas/fiAttribute'
            heldInAccount:
              type: string
              description: Sub-account
              enum:
                - CASH
                - MARGIN
                - SHORT
                - OTHER
            holdingId:
              type: string
              description: Long term persistent identity of the holding
            holdingName:
              type: string
              description: Holding name or security name
            holdingSubType:
              type: string
              enum:
                - MONEYMARKET
                - CASH
            holdingType:
              type: string
              enum:
                - STOCK
                - BOND
                - MUTUALFUND
                - CD
                - ANNUITY
                - OPTION
                - OTHER
            inv401kSurce:
              type: string
              description: 'Source for money for this security. '
              enum:
                - PRETAX
                - AFTERTAX
                - MATCH
                - PROFITSHARING
                - ROLLOVER
                - OTHERVEST
                - OTHERNONVEST
            marketValue:
              type: number
              description: Market value at the time of data retrieved
            originalPurchaseDate:
              type: string
              description: Date of original purchase
              format: date-time
            positionType:
              type: string
              enum:
                - LONG
                - SHORT
            purchasedPrice:
              type: number
              description: Price of holding at the time of purchase
            rate:
              type: number
              description: 'For CDs, bonds, and other rate based holdings.'
            securityId:
              type: string
              description: Unique identifier of security
            securityIdType:
              type: string
              description: Security identifier type
              enum:
                - CUSIP
                - ISIN
                - SEDOL
                - SICC
                - VALOR
                - WKN
            symbol:
              type: string
              description: Ticker / Market symbol
            taxLots:
              type: array
              uniqueItems: true
              minItems: 1
              description: Breakdown by tax lot.
              items:
                type: object
                properties:
                  costBasis:
                    type: number
                    description: Total amount of money spent acquiring this lot including any fees or commission expenses incurred.
                  currentValue:
                    type: number
                    description: Lot market value
                  originalPurchaseDate:
                    type: string
                    format: date-time
                    description: Lot acquired date.
                  postionType:
                    type: string
                    enum:
                      - LONG
                      - SHORT
                    description: 'LONG, SHORT.'
                  purchasedPrice:
                    type: number
                    description: Original purchase price.
                  quantity:
                    type: number
                    description: Lot quantity.
            units:
              type: number
              description: 'Required for stock, mutual funds. Number of shares (with decimals).'
          required:
            - currency
            - currentUnitPrice
            - currentUnitPriceDate
            - description
            - holdingName
            - holdingType
            - positionType
            - purchasedPrice
            - securityId
            - securityIdType
            - symbol
        - oneOf:
            - type: object
              properties:
                mutualFundSecurity:
                  $ref: '#/components/schemas/mutualFundSecurity'
            - type: object
              properties:
                optionSecurity:
                  $ref: '#/components/schemas/optionSecurity'
            - type: object
              properties:
                otherSecurity:
                  $ref: '#/components/schemas/otherSecurity'
            - type: object
              properties:
                stockSecurity:
                  $ref: '#/components/schemas/stockSecurity'
            - type: object
              properties:
                sweepSecurity:
                  $ref: '#/components/schemas/sweepSecurity'
            - type: object
              properties:
                debtSecurity:
                  $ref: '#/components/schemas/debtSecurity'
    insuranceAccount:
      title: InsuranceAccount
      description: Insurance Account
      allOf:
        - $ref: '#/components/schemas/accountInfo'
        - type: object
          properties:
            accountCategory:
              type: string
              enum:
                - DEPOSIT_ACCOUNT
                - INVESTMENT_ACCOUNT
                - LOAN_ACCOUNT
                - LOC_ACCOUNT
                - INSURANCE_ACCOUNT
              description: 'The account category of the insurance account. Possible enums: DEPOSIT_ACCOUNT, INVESTMENT_ACCOUNT, LOAN_ACCOUNT, LOC_ACCOUNT, INSURANCE_ACCOUNT'
    insuranceBalance:
      title: Insurance balances
      description: Data elements included with balances specific to insurance accounts
      allOf:
        - $ref: '#/components/schemas/insuranceAccount'
        - type: object
          properties:
            policyCoverageAmount:
              description: Total amount of money the user is insured for.
              type: number
            policyEndDate:
              type: string
              format: date-time
              description: The premium end date.
            policyPremium:
              description: The amount of the user's premium.
              type: number
            policyPremiumTerm:
              type: string
              enum:
                - MONTHLY
                - ANNUAL
              description: he payment term for the premium. MONTHLY or ANNUAL.
            policyStartDate:
              type: string
              format: date-time
              description: The premium start date.
    insuranceTransaction:
      description: Insurance transactions
      allOf:
        - $ref: '#/components/schemas/transaction'
        - type: object
          properties:
            transactionType:
              type: string
              description: InsuranceTransaction Type
              enum:
                - PAYMENT
                - FEE
                - ADJUSTMENT
                - INTEREST
    investmentAccount:
      title: InvestmentAccount
      description: Investment Account
      allOf:
        - $ref: '#/components/schemas/accountInfo'
        - type: object
          properties:
            allowedCheckWriting:
              description: Check writing privileges
              type: boolean
            allowedOptionTrade:
              description: Allowed to trade options
              type: boolean
            brokerId:
              type: string
              description: Unique identifier FI
            calendarYearFor401K:
              description: Date for this calendar year for 401K account
              type: string
            employerName:
              type: string
              description: Name of the employer in investment 401k Plan
            margin:
              description: Margin trading is allowed
              type: boolean
            planId:
              type: string
              description: Plan number for Investment 401k plan
    investmentBalance:
      title: Investment balances
      description: Data elements included with balances specific to investment accounts
      allOf:
        - $ref: '#/components/schemas/investmentAccount'
        - type: object
          properties:
            availableCashBalance:
              description: Cash balance across all sub-accounts. Should include sweep funds.
              type: number
            balanceAsOf:
              type: string
              description: As-of date of balances
              format: date-time
            balanceList:
              type: array
              description: Balance List. Name value pair aggregate.
              items:
                $ref: '#/components/schemas/balanceList'
            currentValue:
              description: Total current value of all investments
              type: number
            dailyChange:
              description: Daily change
              type: number
            marginBalance:
              description: Margin balance
              type: number
            percentageChange:
              description: Percentage change
              type: number
            rolloverAmount:
              description: Rollover amount
              type: number
            shortBalance:
              description: Short balance
              type: number
          required:
            - availableCashBalance
            - balanceAsOf
            - currentValue
            - marginBalance
    investmentLoan:
      title: InvestmentLoan Entity
      properties:
        loanId:
          type: string
          description: Unique identifier for this loan
        loanDescription:
          type: string
          description: Description
        initialLoanBalance:
          type: number
          description: Initial loan balance amount
        loanStartDate:
          type: string
          format: date-time
          description: Start date of the loan
        currentLoanBalance:
          type: number
          description: Current loan principal balance amount
        dateAsOf:
          type: string
          format: date-time
          description: Date and time of current loan balance
        loanRate:
          type: number
          description: Loan annual interest rate for the loan
        loanPaymentAmount:
          type: number
          description: Loan payment amount
        loanPaymentFrequency:
          type: string
          enum:
            - WEEKLY
            - BIWEEKLY
            - TWICEMONTHLY
            - MONTHLY
            - FOURWEEKS
            - BIMONTHLY
            - QUARTERLY
            - SEMIANNUALLY
            - ANNUALLY
            - OTHER
        loanPaymentInitial:
          type: number
          description: Initial number of loan payments
        loanPaymentsRemaining:
          type: integer
          description: Remaining number of loan payments
        loanMaturityDate:
          type: string
          format: date-time
          description: Expected loan end date
        loanInterestToDate:
          type: number
          description: Total interest paid to date on this loan
        loanTotalProjectedInterest:
          type: number
          description: Total projected interest to be paid on this loan
        loanNextPaymentDate:
          type: string
          format: date-time
          description: The next payment date for the loan
      description: Information about an investment loan.
    investments:
      title: ''
      oneOf:
        - properties:
            investmentAccount:
              $ref: '#/components/schemas/investmentDetails'
        - properties:
            depositAccount:
              $ref: '#/components/schemas/depositBalance'
        - properties:
            loanAccount:
              $ref: '#/components/schemas/loanBalance'
        - properties:
            locAccount:
              $ref: '#/components/schemas/locBalance'
        - properties:
            insuranceAccount:
              $ref: '#/components/schemas/insuranceBalance'
        - properties:
            annuityAccount:
              $ref: '#/components/schemas/annuityBalance'
      type: object
      examples: []
    investmentDetails:
      title: Investment account with all details
      description: Data elements included with the investment product
      allOf:
        - $ref: '#/components/schemas/investmentBalance'
        - type: object
          properties:
            holdings:
              type: array
              description: Array of holdings
              items:
                $ref: '#/components/schemas/holding'
            openOrders:
              type: array
              description: Array of open orders
              items:
                $ref: '#/components/schemas/openOrder'
            contribution:
              type: array
              description: Array of contribution objects. Describes how new contributions are distributed among the available securities
              items:
                $ref: '#/components/schemas/contribution'
            vesting:
              type: array
              description: 'Array of vesting objects. Provides the past, present, and future vesting schedule and percentages'
              items:
                $ref: '#/components/schemas/vesting'
            investmentLoans:
              type: array
              description: Array of investment loans
              items:
                $ref: '#/components/schemas/investmentLoan'
            pensionSource:
              type: array
              description: Array of Pension Source
              items:
                $ref: '#/components/schemas/pensionSource'
            equityGrants:
              type: array
              description: 'Provides equity grant information on Restricted Stock Units, Restricted Stock Awards, Stock Appreciation Right, Stock Options, Performance Awards, and Total Share Return Units'
              items:
                $ref: '#/components/schemas/equityGrant'
          required:
            - holdings
      examples: []
    investmentTransaction:
      description: Investment Transactions
      allOf:
        - $ref: '#/components/schemas/transaction'
        - type: object
          properties:
            accruedInterest:
              type: number
              description: Accrued Interest.
            commission:
              type: number
              description: Transaction commission.
            confirmationNumber:
              type: string
              description: Confirmation number of the transaction.
            faceValue:
              type: number
              description: Cash value for bonds.
            fees:
              type: number
              description: Fees applied to the trade.
            fractionalCash:
              type: number
              description: Cash for fractional units (used for stock splits).
            gain:
              type: number
              description: For sales.
            incomeType:
              type: string
              description: 'Type of investment income. CGLONG (capital gains-long term), CGSHORT (capital gains-short term), MISC.'
              enum:
                - CGLONG
                - CGSHORT
                - MISC
            inv401kSource:
              type: string
              description: Source of money.
              enum:
                - PRETAX
                - AFTERTAX
                - MATCH
                - PROFITSHARING
                - ROLLOVER
                - OTHERVEST
                - OTHERNONVEST
            load:
              type: number
              description: Load on the transaction.
            loanId:
              type: string
              description: For 401k accounts only. This indicates the transaction was due to a loan or a loan repayment.
            loanInterest:
              type: number
              description: How much loan pre-payment is interest.
            loanPrincipal:
              type: number
              description: How much loan pre-payment is principal.
            markup:
              type: number
              description: Portion of unit price that is attributed to the dealer markup.
            newUnits:
              type: number
              description: Number of shares after split.
            oldUnits:
              type: number
              description: Number of shares before split.
            payrollDate:
              type: string
              description: The date for the 401k transaction was obtained in payroll.
            penalty:
              type: number
              description: Indicates amount withheld due to a penalty.
            positionType:
              type: string
              enum:
                - LONG
                - SHORT
            price:
              type: number
              description: Unit purchase price.
            priorYearContrib:
              type: boolean
              description: Indicates this buy was made using prior years contribution. TRUE or FALSE.
            runningBalance:
              type: number
              description: Running balance of the position.
            securityId:
              type: string
              description: Unique identifier of security.
            securityIdType:
              type: string
              description: Security identifier type.
              enum:
                - BUSIP
                - ISIN
                - SEDOL
                - SICC
                - VALOR
                - WKN
            securityType:
              type: string
              enum:
                - STOCK
                - MUTUALFUND
                - DEBT
                - OPTION
                - SWEEP
                - OTHER
                - BOND
            shares:
              type: number
              description: 'Required for stock, mutual funds. Number of shares (with decimals). Negative numbers indicate securities are being removed from the account.'
            splitRatioDenominator:
              type: number
              description: Split ratio denominator.
            splitRatioNumerator:
              type: number
              description: Split ratio numerator.
            stateWithholding:
              type: number
              description: State tax withholding.
            subAccountFund:
              type: string
              description: From which account money came in.
              enum:
                - CASH
                - MARGIN
                - SHORT
                - OTHERS
            subAccountSec:
              type: string
              description: Sub-account security type.
              enum:
                - CASH
                - MARGIN
                - SHORT
                - OTHERS
            symbol:
              type: string
              description: Ticker symbol.
            taxes:
              type: number
              description: Taxes on the trade.
            taxExempt:
              type: boolean
              description: Tax-exempt transaction TRUE or FALSE.
            transactionReason:
              type: string
              description: 'Reason for this transaction; CALL (the debt was called), SELL (the debt was sold), MATURITY (the debt reached maturity)'
              enum:
                - CALL
                - SELL
                - MATURITY
            transactionType:
              type: string
              description: InvestmentTransaction Type
              enum:
                - PURCHASED
                - SOLD
                - PURCHASEDTOCOVER
                - ADJUSTMENT
                - PURCHASETOOPEN
                - PURCHASETOCLOSE
                - SOLDTOOPEN
                - SOLDTOCLOSE
                - INTEREST
                - MARGININTEREST
                - REINVESTOFINCOME
                - RETURNOFCAPITAL
                - TRANSFER
                - CONTRIBUTION
                - FEE
                - OPTIONEXERCISE
                - OPTIONEXPIRATION
                - DIVIDEND
                - DIVIDENDREINVEST
                - SPLIT
                - CLOSURE
                - INCOME
                - EXPENSE
                - CLOSUREOPT
                - INVEXPENSE
                - JRNLSEC
                - JRNLFUND
                - OTHER
                - DIV
                - SRVCHG
                - DEP
                - DEPOSIT
                - ATM
                - POS
                - XFER
                - CHECK
                - PAYMENT
                - CASH
                - DIRECTDEP
                - DIRECTDEBIT
                - REPEATPMT
            transferAction:
              type: string
              description: Transfer direction.
              enum:
                - IN
                - OUT
            unitPrice:
              type: number
              description: 'Price per commonly-quoted unit. Does not include markup/markdown, unitprice. Share price for stocks, mutual funds, and others. Percentage of par for bonds. Per share (not contract) for options.'
            units:
              type: number
              description: 'For security-based actions other than stock splits, quantity. Shares for stocks, mutual funds, and others. Face value for bonds. Contracts for options.'
            unitType:
              type: string
              enum:
                - SHARES
                - CURRENCY
            withholding:
              type: number
              description: Federal tax withholding.
          required:
            - securityId
            - securityIdType
            - securityType
            - symbol
            - taxExempt
            - unitPrice
            - units
            - unitType
    lineItem:
      title: LineItem
      type: object
      properties:
        amount:
          type: number
          description: The amount of money attributable to this line item
        checkNumber:
          type: number
          description: Check number
        description:
          type: string
          description: The description of the line item
        imageIds:
          type: array
          description: Array of image identifiers (unique to transaction) used to retrieve images of check or transaction receipt
          items:
            type: string
        links:
          type: array
          items:
            $ref: '#/components/schemas/hateoasLink'
          description: 'Links (unique to this Transaction) used to retrieve images of checks or transaction receipts, or invoke other APIs'
        memo:
          type: string
          description: Secondary item description
        reference:
          type: string
          description: A reference number
    loanAccount:
      title: LoanAccount
      description: Loan Account
      allOf:
        - $ref: '#/components/schemas/accountInfo'
        - type: object
          properties:
            compoundingPeriod:
              type: string
              enum:
                - DAILY
                - WEEKLY
                - BIWEEKLY
                - SEMIMONTHLY
                - MONTHLY
                - SEMIANNUALLY
                - ANNUALLY
            loanTerm:
              type: integer
              description: Term of loan in months
            maturityDate:
              type: string
              description: Maturity date is required for CDs
              format: date-time
            originatingDate:
              type: string
              description: Loan origination date
              format: date-time
            paymentFrequency:
              type: string
              enum:
                - DAILY
                - WEEKLY
                - BIWEEKLY
                - SEMIMONTHLY
                - MONTHLY
                - SEMIANNUALLY
                - ANNUALLY
            totalNumberOfPayments:
              type: integer
              description: Total number of payments
          required:
            - loanTerm
    loanBalance:
      title: Loan balances
      description: Data elements included with balances specific to loan accounts
      allOf:
        - $ref: '#/components/schemas/loanAccount'
        - type: object
          properties:
            balanceAsOf:
              type: string
              description: As-of date of balances
              format: date-time
            escrowBalance:
              description: Escrow balance of loan
              type: number
            interestPaidYearToDate:
              description: Interest paid year to date
              type: number
            lastPaymentAmount:
              description: Last payment amount
              type: number
            lastPaymentDate:
              type: string
              description: Last payment date
              format: date-time
            nextPaymentAmount:
              description: Amount of next payment
              type: number
            nextPaymentDate:
              type: string
              description: Date of next payment
              format: date-time
            originalPrincipal:
              description: Original principal of loan
              type: number
            payOffAmount:
              description: Payoff amount
              type: number
            principalBalance:
              description: Principal balance of loan
              type: number
          required:
            - balanceAsOf
            - interestPaidYearToDate
            - nextPaymentAmount
            - nextPaymentDate
            - originalPrincipal
            - payOffAmount
            - principalBalance
    loanTransaction:
      title: Loan Transaction
      allOf:
        - $ref: '#/components/schemas/transaction'
        - type: object
          properties:
            paymentDetails:
              $ref: '#/components/schemas/paymentDetails'
            transactionType:
              type: string
              description: LoanTransaction Type
              enum:
                - ADJUSTMENT
                - FEE
                - INTEREST
                - PAYMENT
      description: Loan Transaction
    locAccount:
      title: LocAccount
      description: Line of Credit Account
      allOf:
        - $ref: '#/components/schemas/accountInfo'
    locBalance:
      title: Line of credit balances
      description: Data elements included with balances specific to line of credit accounts
      allOf:
        - $ref: '#/components/schemas/locAccount'
        - type: object
          properties:
            balanceAsOf:
              type: string
              description: As-of date of balances
              format: date-time
            advancesApr:
              description: Advances APR
              type: number
            availableCash:
              description: Available cash
              type: number
            availableCredit:
              description: Available credit
              type: number
            cashAdvanceLimit:
              description: Cash advance limit
              type: number
            creditLine:
              description: Credit limit
              type: number
            currentBalance:
              description: Current balance LOC
              type: number
            currentRewardsBalance:
              description: Current rewards balance
              type: number
            financeCharges:
              description: Finance charges
              type: number
            lastPaymentAmount:
              description: Last payment amount
              type: number
            lastPaymentDate:
              type: string
              description: Last payment date
              format: date-time
            lastStmtBalance:
              description: Last Statement Balance
              type: number
            lastStmtDate:
              type: string
              description: Last Statement Date
              format: date-time
            minimumPaymentAmount:
              description: Minimum payment amount
              type: number
            nextPaymentAmount:
              description: Amount of next payment
              type: number
            nextPaymentDate:
              type: string
              description: Due date of next payment
              format: date-time
            pastDueAmount:
              description: Past Due Amount
              type: number
            pointsAccrued:
              description: Points accrued
              type: number
            principalBalance:
              description: Principal balance
              type: number
            pointsRedeemed:
              description: Points redeemed
              type: number
            purchasesApr:
              description: Purchases APR
              type: number
          required:
            - balanceAsOf
            - availableCredit
            - creditLine
            - currentBalance
            - currentRewardsBalance
            - lastStmtBalance
            - lastStmtDate
            - minimumPaymentAmount
            - nextPaymentAmount
            - nextPaymentDate
            - pastDueAmount
            - principalBalance
            - purchasesApr
    locTransaction:
      title: LocTransaction
      description: A line of credit transaction of type
      allOf:
        - $ref: '#/components/schemas/transaction'
        - type: object
          description: Additional data elements for line of credit transactions
          properties:
            checkNumber:
              type: integer
              description: Check number
            paymentDetails:
              $ref: '#/components/schemas/paymentDetails'
            transactionType:
              type: string
              description: LocTransaction Type
              enum:
                - CHECK
                - WITHDRAWAL
                - TRANSFER
                - POSDEBIT
                - ATMWITHDRAWAL
                - BILLPAYMENT
                - FEE
                - DEPOSIT
                - ADJUSTMENT
                - INTEREST
                - DIVIDEND
                - DIRECTDEPOSIT
                - ATMDEPOSIT
                - POSCREDIT
    mutualFundSecurity:
      title: MutualFundSecurity Entity
      description: Information about the mutual fund security specific to the type of security
      type: object
      properties:
        mutualFundType:
          type: string
          description: Mutual fund type
          enum:
            - OPENEND
            - CLOSEEND
            - OTHER
        unitsStreet:
          type: number
          description: 'Units in the FI''s street name, positive quantity'
        unitsUser:
          type: number
          description: 'Units in user''s name directly, positive  quantity'
        reinvestDividends:
          type: boolean
          description: Reinvest dividends
        reinvestCapitalGains:
          type: boolean
          description: Reinvest capital gains
        yield:
          type: number
          description: Current yield reported as portion of the fund's assets
        yieldAsOfDate:
          type: string
          format: date-time
          description: As-of date for yield value
      required:
        - unitsStreet
        - unitsUser
        - reinvestCapitalGains
    openOrder:
      title: OpenOrder Entity
      type: object
      description: Information on an open order.
      properties:
        orderId:
          type: string
          description: Long term persistent identity of the order. Id for this order transaction.
        securityId:
          type: string
          description: Unique identifier of the security.
        securityIdType:
          type: string
          description: Security identifier type
          enum:
            - CUSIP
            - ISIN
            - SEDOL
            - SICC
            - VALOR
            - WKN
        symbol:
          type: string
          description: Market symbol
        description:
          type: string
          description: Description of order
        units:
          type: number
          description: 'Number of units (shares, bonds, etc.)'
        orderType:
          type: string
          enum:
            - BUY
            - SELL
            - BUYTOCOVER
            - BUYTOOPEN
            - SELLTOCOVER
            - SELLTOOPEN
            - SELLSHORT
            - SELLCLOSE
          description: Type of order.
        orderDate:
          type: string
          format: date-time
          description: Order date
        unitPrice:
          type: number
          description: Unit price
        unitType:
          type: string
          enum:
            - CURRENCY
            - SHARES
          description: Type of unit.
        orderDuration:
          description: 'This order is good for DAY, GOODTILLCANCEL, IMMEDIATE'
          type: string
          enum:
            - DAY
            - GOODTILLCANCEL
            - IMMEDIATE
        subAccount:
          type: string
          enum:
            - CASH
            - MARGIN
            - SHORT
            - OTHER
        limitPrice:
          type: number
          description: Limit Price
        stopPrice:
          type: number
          description: Stop price
        inv401kSource:
          type: string
          enum:
            - AFTERTAX
            - MATCH
            - OTHERNONVEST
            - OTHERVEST
            - PRETAX
            - PROFITSHARING
            - ROLLOVER
          description: 'For 401(k) accounts, source of money for this order. Default if not present is OTHERNONVEST.'
    optionSecurity:
      title: OptionSecurity Entity
      description: Information about the option security specific to the type of security
      type: object
      properties:
        secured:
          type: string
          enum:
            - COVERED
            - NAKED
          description: How the option is secured
        optionType:
          type: string
          enum:
            - CALL
            - PUT
        strikePrice:
          type: number
          description: Strike price / Unit price
        expireDate:
          type: string
          format: date-time
          description: Expiration date of option
        sharesPerContract:
          type: number
          description: Shares per contract
      required:
        - secured
        - optionType
        - strikePrice
        - expireDate
        - sharesPerContract
    otherSecurity:
      title: OtherSecurity Entity
      description: Information about the security specific to the type of security
      type: object
      properties:
        typeDescription:
          type: string
          description: Description of Other Security
      required:
        - typeDescription
    paginatedArray:
      type: object
      properties:
        links:
          type: object
          properties:
            next:
              type: object
              properties:
                href:
                  type: string
            prev:
              type: object
              properties:
                href:
                  type: string
      x-examples:
        example-1:
          links:
            next:
              href: /fdx/v4/mikomo/accounts/g833202fb0866d0ad83472c429/transactions?endTime=2021-02-26T00%3A00%3A00Z&limit=5&offset=5&startTime=2019-02-26T00%3A00%3A00Z
            prev:
              href: /fdx/v4/mikomo/accounts/g833202fb0866d0ad83472c429/transactions?endTime=2021-02-26T00%3A00%3A00Z&limit=5&offset=0&startTime=2019-02-26T00%3A00%3A00Z
    paymentDetails:
      title: PaymentDetails
      type: object
      description: Payment details for some transactions
      properties:
        escrowAmount:
          type: number
          description: The amount of payment applied to escrow
        feesAmount:
          type: number
          description: The amount of payment applied to fees
        insuranceAmount:
          type: number
          description: The amount of payment applied to life/health/accident insurance on the loan
        interestAmount:
          type: number
          description: The amount of payment applied to interest
        pmiAmount:
          type: number
          description: The amount of payment applied to PMI
        principalAmount:
          type: number
          description: The amount of payment applied to principal
    pensionSource:
      title: PensionSource Entity
      properties:
        displayName:
          type: string
          description: Name of the Source
        amount:
          type: number
          description: Benefit Amount
        paymentOption:
          type: string
          description: Form of payment
        asOfDate:
          type: string
          format: date-time
          description: Date benefit was calculated
        frequency:
          type: string
          enum:
            - ANNUALLY
            - BIWEEKLY
            - DAILY
            - MONTHLY
            - SEMIANNUALLY
            - SEMIMONTHLY
            - WEEKLY
        startDate:
          type: string
          format: date-time
          description: Assumed retirement date ‐ As of date amount is payable
      description: Information about a pension source.
    stockSecurity:
      title: StockSecurity Entity
      description: Information about the stock security specific to the type of security
      type: object
      properties:
        unitsStreet:
          type: number
          description: 'Units in the FI''s street name, positive quantity'
        unitsUser:
          type: number
          description: 'Units in user''s name directly, positive  quantity'
        reinvestDividends:
          type: boolean
          description: Reinvest dividends
        stockType:
          type: string
          enum:
            - BOND
            - DEBT
            - MUTUALFUND
            - OPTION
            - OTHER
            - STOCK
            - SWEEP
        yield:
          type: number
          description: Current yield
        yieldAsOfDate:
          type: string
          format: date-time
          description: Yield as-of date
      required:
        - unitsUser
        - reinvestDividends
        - stockType
    sweepSecurity:
      title: SweepSecurity Entity
      description: Information about the sweep security specific to the type of security
      type: object
      properties:
        currentBalance:
          type: number
          description: Balance of funds in account
        availableBalance:
          type: number
          description: Balance of funds available for use
        balanceAsOf:
          type: string
          format: date-time
          description: As-of date of balances
        checks:
          type: boolean
          description: Whether or not checks can be written on the account
      required:
        - availableBalance
        - balanceAsOf
    transaction:
      type: object
      description: Transaction elements
      properties:
        accountId:
          type: string
          description: Corresponds to AccountId in Account
        amount:
          type: number
          description: |-
            The amount of money in the account currency.

            If balanceType is `ASSET`:

              1. If `debitCreditMemo` = `DEBIT`, sign is "+" or not present
              2. If `CREDIT`, sign is "-"

            If balanceType is `LIABILITY`:

              1. If `debitCreditMemo` = `DEBIT`, sign is "-"
              2. If `CREDIT`, sign is "+" or not present
        category:
          type: string
          description: 'Transaction category, preferably MCC or SIC.'
        debitCreditMemo:
          type: string
          description: Akoya will ensure that this is correctly populated with one of DEBIT or CREDIT and matches the sign of the status field.
          enum:
            - DEBIT
            - CREDIT
        description:
          type: string
          description: The description of the transaction
        imageIds:
          type: array
          items:
            type: string
          description: Array of image identifiers (unique to transaction) used to retrieve images of check or transaction receipt.
        fiAttributes:
          type: array
          uniqueItems: true
          minItems: 1
          description: Array of FI-specific attributes
          items:
            $ref: '#/components/schemas/fiAttribute'
        foreignAmount:
          type: number
          description: The amount of money in the foreign currency
        foreignCurrency:
          type: string
          description: The ISO 4217 code of the foreign currency
        lineItem:
          type: array
          description: Breakdown of the transaction details
          items:
            $ref: '#/components/schemas/lineItem'
        links:
          type: array
          items:
            $ref: '#/components/schemas/hateoasLink'
          description: 'Links (unique to this Transaction) used to retrieve images of checks or transaction receipts, or invoke other APIs'
        memo:
          type: string
          description: Secondary transaction description
        postedTimestamp:
          type: string
          description: The date and time that the transaction was posted to the account. If not provided then TransactionTimestamp can be used as PostedTimeStamp.
          format: date-time
        reference:
          type: string
          description: A tracking reference identifier
        referenceTransactionId:
          type: string
          description: |-
            Akoya ensures that this field is populated for all transactions which are reversals, otherwise it is null. Either way it is always present.

            For reverse postings, the identity of the transaction being reversed. For the correction transaction, the identity of the reversing post. For credit card posting transactions, the identity of the authorization transaction.
        status:
          type: string
          description: 'AUTHORIZATION, MEMO, PENDING, or POSTED'
          enum:
            - PENDING
            - MEMO
            - POSTED
            - AUTHORIZATION
        subCategory:
          type: string
          description: Transaction category detail
        transactionId:
          type: string
          description: |-
            Long term persistent identity of the transaction (unique to account). 
            Transaction IDs should: 
              
              1. be the same for pending and posted 
              2. be different for reversed transactions 
              3. `referenceTransactionId` should be present for reversed transactions'
        transactionTimestamp:
          type: string
          description: |-
            The date and time that the transaction was added to the server backend systems.

            Akoya ensures that this field is populated for all transactions to which it applies, otherwise it is null. Either way it is always present.
          format: date-time
      required:
        - accountId
        - amount
        - category
        - description
        - postedTimestamp
        - referenceTransactionId
        - status
        - transactionId
        - transactionTimestamp
    transactions:
      title: Transactions Entity
      description: Optionally paginated array of transactions
      allOf:
        - $ref: '#/components/schemas/paginatedArray'
        - type: object
          properties:
            transactions:
              description: 'An array of transactions with entity types dependent on the account type (deposit, investment, loan, or line of credit)'
              type: array
              items:
                anyOf:
                  - properties:
                      depositTransaction:
                        $ref: '#/components/schemas/depositTransaction'
                  - properties:
                      loanTransaction:
                        $ref: '#/components/schemas/loanTransaction'
                  - properties:
                      locTransaction:
                        $ref: '#/components/schemas/locTransaction'
                  - properties:
                      investmentTransaction:
                        $ref: '#/components/schemas/investmentTransaction'
                  - properties:
                      insuranceTransaction:
                        $ref: '#/components/schemas/insuranceTransaction'
                type: object
      examples:
        - links:
            next:
              href: string
            prev:
              href: string
          transactions:
            - depositTransaction:
                accountId: string
                amount: 0
                category: string
                debitCreditMemo: DEBIT
                description: string
                imageIds:
                  - string
                fiAttributes:
                  - name: string
                    value: string
                foreignAmount: 0
                foreignCurrency: string
                lineItem:
                  - amount: 0
                    checkNumber: 0
                    description: string
                    imageIds:
                      - string
                    links:
                      - href: 'https://api.fi.com/fdx/v4/accounts/12345'
                        action: GET
                        types:
                          - application/json
                    memo: string
                    reference: string
                links:
                  - href: 'https://api.fi.com/fdx/v4/accounts/12345'
                    action: GET
                    types:
                      - application/json
                memo: string
                postedTimestamp: '2019-08-24T14:15:22Z'
                reference: string
                referenceTransactionId: string
                status: PENDING
                subCategory: string
                transactionId: string
                transactionTimestamp: '2019-08-24T14:15:22Z'
                payee: string
                checkNumber: 0
                transactionType: CHECK
    vesting:
      title: Vesting Entity
      properties:
        vestingDate:
          type: string
          format: date-time
          description: Vesting date
        symbol:
          type: string
          description: Security symbol
        strikePrice:
          type: number
          description: Strike price
        vestingPercentage:
          type: number
          description: Vesting percentage
        otherVestAmount:
          type: number
          description: Other vest amount
        otherVestPercentage:
          type: number
          description: Other vest percentage
        vestedBalance:
          type: number
          description: Vested balance
        unVestedBalance:
          type: number
          description: Unvested balance
        vestedQuantity:
          type: number
          description: Vested qualtity
        unVestedQuantity:
          type: number
          description: Unvested quantity
      type: object
      description: 'Provides the past, present, and future vesting schedule and percentages.'
  examples: {}
openapi: 3.1.0
info:
  title: Akoya Token API
  description: Akoya Token APIs for data recipients. Default servers are set to override for the Akoya sandbox environment.
  version: '1.00'
  contact:
    name: API Support
    url: 'http://www.akoya.com'
    email: [email protected]
servers:
  - url: 'https://sandbox-idp.ddp.akoya.com'
    description: Akoya Sandbox IdP server
tags:
  - name: Token API
    description: Token Management
security:
  - BasicAuth: []
paths:
  /token:
    post:
      tags:
        - Token API
      summary: Token
      description: |-
        _Obtain tokens_: The token endpoint allows you to obtain id and refresh tokens. You will need to pass the authorization code from the end-user's authentication flow. See: [Get authorization code](https://docs.akoya.com/reference/get-authorization-code)

        The issued `id_token` (JWT) is a short-lived token. To retrieve a new `id_token`, use the refresh token request. [Read more about tokens](https://docs.akoya.com/docs/token-flow).

        > 🛑
        > 
        > For basic auth, use your *client_id* and *client_secret* for username & password.
      operationId: get-token
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/obtainTokenRequest'
      deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/x-www-form-urlencoded: {}
            application/json:
              schema:
                $ref: '#/components/schemas/tokenResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              example:
                message: invalid_request
                description: Invalid or expired code parameter.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              example:
                message: invalid_client
                description: Invalid client credentials.
  '/{token}':
    post:
      tags:
        - Token API
      summary: Refresh token
      description: |-
        Once the `id_token` expires, use the `refresh_token` to request a new set of tokens. Refresh token expiration times are set by the provider.

        [Read more about tokens](https://docs.akoya.com/docs/token-flow).
      operationId: refresh-token
      security: []
      parameters:
        - name: token
          in: path
          required: true
          schema:
            type: string
            default: token
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/refreshTokenRequest'
      deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/x-www-form-urlencoded: {}
            application/json:
              schema:
                $ref: '#/components/schemas/tokenResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              example:
                message: invalid_request
                description: Invalid or expired code parameter.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
              example:
                message: invalid_client
                description: Invalid client credentials.
components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: 'For Basic Auth, use your `client_id` and `client_secret` for username & password'
  schemas:
    obtainTokenRequest:
      title: Obtain tokens
      type: object
      required:
        - grant_type
        - redirect_uri
        - code
      properties:
        grant_type:
          type: string
          description: Set to `authorization_code` to indicate an authorization code will be returned
          default: authorization_code
        redirect_uri:
          type: string
          description: URI where user will be redirected after end-users authorization is complete. It must be the same as the URI called in the authorization request
        code:
          type: string
          description: Authorization code from end-user's authentication.
      description: |-
        To obtain id and refresh tokens, you must first obtain an authorization code. Pass it in the body of the request as "code."

        The issued JWT will have an expiration that is set by the provider and will be valid only for the data permissioned by the end-user.
          
    refreshTokenRequest:
      title: Refresh tokens
      description: 'Once the ID Token expires, you will need to call the token endpoint to obtain a new set of ID tokens. Refresh token expiration is set by the data provider.'
      type: object
      required:
        - grant_type
        - refresh_token
        - client_id
        - client_secret
      properties:
        grant_type:
          type: string
          description: Set to `refresh_token` to indicate a new id token will be returned
          default: refresh_token
        refresh_token:
          type: string
          description: The refresh token
        client_id:
          type: string
          description: Your app's client ID from Akoya
        client_secret:
          type: string
          description: Your app's Client secret
      x-examples:
        example-1:
          value:
            grant_type: refresh_token
            refresh_token: string
            client_id: string
            client_secret: string
    tokenResponse:
      title: Token Example Response
      required:
        - token_type
        - expires_in
        - refresh_token
        - id_token
      type: object
      properties:
        token_type:
          type: string
        expires_in:
          type: integer
          format: int32
        refresh_token:
          type: string
        id_token:
          type: string
      example:
        token_type: bearer
        expires_in: 86399
        refresh_token: ChlnNm5hdWV4ZWN0aWdpdmJvdn...ZXZwbXNpaXh5ZWN6dWE3a21kbjZt
        id_token: eyJhbGciOiJSUzI1NiIsImtpZCI6IjJ...lAQGaJAsWlA3YdBBaL2ftE-v2g4fctKOug
    error:
      title: Error response
      type: object
      properties:
        message:
          type: string
        description:
          type: string
x-headers: []
x-explorer-enabled: true
x-proxy-enabled: true
x-samples-enabled: true
x-samples-languages:
  - curl
  - node
  - ruby
  - javascript
  - python
  - csharp

openapi: 3.0.0
info:
  title: Akoya Revoke Token API
  description: 'Akoya API for data recipients to revoke tokens. Default servers are set to override for the Akoya sandbox environment.'
  version: '1.00'
  contact:
    name: API Support
    url: 'http://www.akoya.com'
    email: [email protected]
servers:
  - url: 'https://sandbox-permission.api.ddp.akoya.com'
    description: Akoya Sandbox Permission server
tags:
  - name: Token API
    description: Token Management
security:
  - BasicAuth: []
paths:
  /token/revoke:
    post:
      tags:
        - Token API
      summary: Revoke ID Token
      description: This request revokes access tokens granted on behalf of the end-user.
      operationId: revoke-token
      parameters:
        - name: akoyaId
          in: header
          schema:
            type: string
          deprecated: true
          description: 'Deprecated. Do not use. Trace ID for troubleshooting. Required until deprecated October 1, 2021. Akoya will automatically generate an ID and return it in the response header `x-akoya-interaction-id`'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            encoding: {}
            schema:
              required:
                - token
                - client_id
                - client_secret
                - token_type_hint
              type: object
              properties:
                client_id:
                  type: string
                  description: Client ID
                  example: <<client_id>>
                client_secret:
                  type: string
                  description: Client secret
                  example: <<client_secret>>
                token:
                  type: string
                  description: Refresh token
                  example: <<refresh_token>>
                token_type_hint:
                  type: string
                  description: Accepts `refresh_token`
                  default: refresh_token
                  example: refresh_token
      deprecated: false
      security: []
      responses:
        '200':
          description: OK
          content: {}
components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
x-headers: []
x-explorer-enabled: true
x-proxy-enabled: true
x-samples-enabled: true
x-samples-languages:
  - curl
  - node
  - ruby
  - javascript
  - python
  - csharp

Change log

DateUpdate
2022‑Nov‑18The specification did not indicate that the Investments endpoint supports all account types. This has been resolved with an update to the investments model, the addition of an investmentDetails model, and clarifications made in descriptions for Account Info, Balances, and Investments endpoints.
2022‑Oct‑12Original version of Akoya OpenAPI spec 2.0