---
swagger: "2.0"
info:
  title: Account Information
  x-ibm-name: account-information
  version: 4.1.0
  description: The Account Information APIs let you retrieve real-time account and
    transaction data from all your authorized Online Banking for Business accounts.
    In most cases you'll want to call a summary of your accounts first, which will
    return accountIDs to be used to identify accounts in future calls.
  x-api-id: api-id
  x-audience: company-internal
  x-bmo-api-type: BMO Internal API
  x-bmo-api-provider-id: 26777
  x-bmoservicedomain-name: Commercial-sb
  x-api-specification-compliant: true
  x-ibm-summary: ""
schemes:
- https
basePath: /open-banking/commercial-sb
security:
- OAuth:
  - FinancialInformation
  x-api-key: []
securityDefinitions:
  OAuth:
    type: oauth2
    flow: accessCode
    x-ibm-oauth-provider: apic-oauth-ob-commercial-sb-provider
    authorizationUrl: https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/authorize
    tokenUrl: https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/token
    scopes:
      FinancialInformation: FinancialInformation
  x-api-key:
    type: apiKey
    in: header
    x-key-type: client_id
    name: x-api-key
x-ibm-configuration:
  categories:
  - bian--bd--operationalservices
  enforced: true
  testable: true
  phase: realized
  cors:
    enabled: true
  type: rest
  application-authentication:
    certificate: false
  servers:
  - url: https://sandbox-open-api.bmo.com/open-banking/commercial-sb
    type:
    - production
    - development
  oauth-servers:
    OAuth:
      tokenUrls:
      - https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/token
      authorizationUrls:
      - https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/authorize
      refreshUrls: []
parameters:
  accountIds:
    in: query
    name: accountIds
    description: Comma separated list of account ids
    type: array
    items:
      type: string
  startTime:
    in: query
    name: startTime
    description: Start time for use in retrieval of transactions. Please ignore this
      parameter.
    type: array
    items:
      type: string
      format: date
  endTime:
    in: query
    name: endTime
    description: End time for use in retrieval of transactions. Please ignore this
      parameter.
    type: array
    items:
      type: string
      format: date
  resultType:
    in: query
    name: resultType
    description: Flag to indicate if you want a lightweight array of descriptors or
      full account details. If set to `lightweight`, should only return the fields
      associated with the `AccountDescriptor` entity. This field is not required,
      but defaults to lightweight
    required: false
    type: string
    enum:
    - lightweight
    - details
    default: lightweight
  offset:
    in: query
    name: offset
    description: Opaque cursor used by the provider to send the next set of records
    type: string
  limit:
    in: query
    name: limit
    description: Number of elements that the consumer wishes to receive - Providers
      should implement reasonable defaults and maximum
    type: integer
  accountId:
    in: path
    name: accountId
    description: Account Identifier
    type: string
    required: true
  x-api-key:
    in: header
    name: x-api-key
    description: API Key
    type: string
    required: true
  authorization:
    in: header
    name: authorization
    description: Authorization Token
    type: string
    required: true
tags:
- name: Account Information
- name: Account Transactions
definitions:
  ContentTypes:
    title: Content Types
    description: Types of document formats. (Suggested)
    type: string
    enum:
    - application/pdf
    - image/gif
    - image/jpeg
    - image/tiff
    - image/png
    - application/json
    example: application/json
  HateoasLink:
    type: object
    required:
    - href
    properties:
      href:
        type: string
        example: /example/accounts/12345
      action:
        type: string
        enum:
        - GET
        - POST
        - PATCH
        - DELETE
        - PUT
        description: HTTP Method to use for the request (Suggested)
      types:
        type: array
        items:
          $ref: '#/definitions/ContentTypes'
        description: Content-types that can be used in the Accept header.
  PageMetadataLinks:
    type: object
    properties:
      next:
        $ref: '#/definitions/HateoasLink'
      prev:
        $ref: '#/definitions/HateoasLink'
  PageMetadata:
    type: object
    properties:
      nextOffset:
        type: string
        example: "2"
        description: Opaque identified. Does not need to be numeric or have any specific
          pattern. Implementation specific.
      prevOffset:
        type: string
        example: "2"
        description: Opaque identified. Does not need to be numeric or have any specific
          pattern. Implementation specific.
      totalElements:
        type: integer
        example: 3
        description: Total number of elements
  PaginatedArray:
    type: object
    description: To be used as a mixin using "allOf"
    properties:
      page:
        $ref: '#/definitions/PageMetadata'
      links:
        $ref: '#/definitions/PageMetadataLinks'
  Account:
    title: Account Entity
    description: An abstract account entity that concrete account entities extend.
      Extends and inherits all fields from AccountDescriptor.
    allOf:
    - $ref: '#/definitions/AccountDescriptor'
    - type: object
      properties:
        parentAccountId:
          description: Long-term persistent identity of the parent account. This is
            used to group accounts.
          type: string
          maxLength: 256
        lineOfBusiness:
          description: The line of business, such as consumer, consumer joint, small
            business, corporate, etc.
          type: string
        routingTransitNumber:
          type: string
          description: Routing transit number (RTN) associated with account number
            at owning institution.
        balanceType:
          $ref: '#/definitions/BalanceType'
        interestRate:
          type: number
          description: Interest Rate of Account
        interestRateType:
          $ref: '#/definitions/InterestRateType'
        interestRateAsOf:
          type: string
          description: Date of account’s interest rate
        priorInterestRate:
          type: number
          description: Previous Interest Rate of Account
        transferIn:
          type: boolean
          description: Account is eligible for incoming transfers
        transferOut:
          type: boolean
          description: Account is eligible for outgoing transfers
        micrNumber:
          type: string
          maxLength: 64
          description: MICR Number
        lastActivityDate:
          type: string
          description: Date that last transaction occurred on account
        transactionsIncluded:
          type: boolean
          description: Default is false. If present and true, a call to retrieve transactions
            will not return any further details about this account. This is an optimization
            that allows an FDX API server to return transactions and account details
            in a single call.
  AccountDescriptor:
    title: AccountDescriptor Entity
    description: Minimal information about the account for use in lightweight arrays.
    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
        maxLength: 256
      error:
        $ref: '#/definitions/Error'
      accountType:
        $ref: '#/definitions/AccountType'
      accountNumber:
        description: Full account number for the end user's handle for account at
          owning institution.
        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
      productName:
        type: string
        description: Marketed product name for this account. Used in UIs to assist
          in account selection
      nickname:
        description: Name given by the user. Used in UIs to assist in account selection
        type: string
      status:
        type: string
        enum:
        - OPEN
        - CLOSED
        - PENDINGOPEN
        - PENDINGCLOSE
        - DELINQUENT
        - PAID
        - NEGATIVECURRENTBALANCE
      description:
        type: string
      currency:
        $ref: '#/definitions/Currency'
      fiAttributes:
        type: array
        items:
          $ref: '#/definitions/FiAttribute'
    type: object
  AccountWithDetails:
    type: object
    description: An instance of an account with full details.
    allOf:
    - properties:
        depositAccount:
          $ref: '#/definitions/DepositAccount'
    - properties:
        loanAccount:
          $ref: '#/definitions/LoanAccount'
    - properties:
        locAccount:
          $ref: '#/definitions/LocAccount'
    - properties:
        investmentAccount:
          $ref: '#/definitions/InvestmentAccount'
    - properties:
        insuranceAccount:
          $ref: '#/definitions/InsuranceAccount'
    - properties:
        annuityAccount:
          $ref: '#/definitions/AnnuityAccount'
  Accounts:
    title: Accounts Entity
    description: An optionally paginated array of accounts.
    allOf:
    - $ref: '#/definitions/PaginatedArray'
    - type: object
      properties:
        accounts:
          type: array
          items:
            $ref: '#/definitions/AccountWithDetails'
  Contribution:
    title: Contribution Entity
    properties:
      securityId:
        type: string
        description: Unique identifier of security
      securityIdType:
        $ref: '#/definitions/SecurityIdType'
      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
    type: object
  Currency:
    title: Currency Entity
    description: Currency information if it is different from Account entity
    properties:
      currencyRate:
        type: number
        description: Currency rate between original and converted currency
      currencyCode:
        $ref: '#/definitions/Iso4217Code'
      originalCurrencyCode:
        $ref: '#/definitions/Iso4217Code'
    type: object
  DebtSecurity:
    title: DebtSecurity Entity
    properties:
      parValue:
        type: number
        description: Par value amount
      debtType:
        $ref: '#/definitions/DebtType'
      debtClass:
        $ref: '#/definitions/DebtClass'
      couponRate:
        type: number
        description: Bond coupon rate for next closest call date
      couponDate:
        type: string
        description: Maturity date for next coupon
      couponMatureFrequency:
        $ref: '#/definitions/CouponMatureFrequency'
      callPrice:
        type: number
        description: Bond call price
      yieldToCall:
        type: number
        description: Yield to next call
      callDate:
        type: string
        description: Next call date
      callType:
        $ref: '#/definitions/CallType'
      yieldToMaturity:
        type: number
        description: Yield to maturity
      bondMaturityDate:
        type: string
        description: Bond Maturity date
  DepositAccount:
    title: DepositAccount Entity
    description: Deposit accounts will have following fields in FiAttributes - PreviousBalance,
      OpenDate, StatementName, 1DayFloat, 2orMoreDaysFloat, AccruedInterestMTD, ProjectedInterested,
      InterestPaidPreviousMonth
    allOf:
    - $ref: '#/definitions/Account'
    - type: object
      properties:
        balanceAsOf:
          description: As-of date of balances
          type: string
        currentBalance:
          type: number
          description: Balance of funds in account
        openingDayBalance:
          type: number
          description: Day's opening fund balance
        availableBalance:
          type: number
          description: Balance of funds available for use
        annualPercentageYield:
          type: number
          description: Annual Percentage Yield
        interestYtd:
          type: number
          description: YTD Interest
        term:
          type: integer
          description: Term of CD in months
        maturityDate:
          description: Maturity date for CDs
          type: string
        transactions:
          type: array
          description: Array of DepositTransactions
          items:
            $ref: '#/definitions/DepositTransaction'
  DepositTransaction:
    title: DepositTransaction Entity
    description: Deposit Transaction will have following fields in FiAttributes -
      Posted, Pending, ValueDate
    allOf:
    - $ref: '#/definitions/Transaction'
    - properties:
        transactionType:
          $ref: '#/definitions/DepositTransactionType'
        payee:
          type: string
          maxLength: 255
          description: Payee name
        checkNumber:
          type: integer
          description: Check Number
      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.
    properties:
      code:
        type: string
        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
    type: object
  FiAttribute:
    title: FiAttribute Entity
    description: Financial platform provider-specific attribute
    properties:
      name:
        type: string
        description: Name of attribute
      value:
        type: string
        description: Value of attribute
    type: object
  FiPortion:
    title: FiPortion
    properties:
      assetClass:
        type: string
        description: FI-specific asset class
      percent:
        type: number
        description: Percentage of asset class that falls under this asset
    type: object
  Holding:
    title: Holding Entity
    allOf:
    - properties:
        holdingId:
          type: string
          maxLength: 256
          description: Long term persistent identity of the holding
        securityId:
          description: Unique identifier of security
          type: string
        securityIdType:
          $ref: '#/definitions/SecurityIdType'
        holdingName:
          type: string
          description: Holding name or security name
        holdingType:
          $ref: '#/definitions/HoldingType'
        holdingSubType:
          $ref: '#/definitions/HoldingSubType'
        positionType:
          $ref: '#/definitions/PositionType'
        heldInAccount:
          $ref: '#/definitions/HeldInAccount'
        description:
          type: string
          description: The description of the holding
        symbol:
          type: string
          description: Ticker / Market symbol
        originalPurchaseDate:
          type: string
          description: Date of original purchase
        purchasedPrice:
          type: number
          description: Price of holding at the time of purchase
        currentUnitPrice:
          type: number
          description: Current unit price
        changeInPrice:
          type: number
          description: Change in current price compared to previous day's close
        currentUnitPriceDate:
          type: string
          description: Current unit price as of date
        units:
          type: number
          description: Required for stock, mutual funds. Number of shares (with decimals)
        marketValue:
          type: number
          description: Market value at the time of data retrieved
        faceValue:
          type: number
          description: Required for bonds. Face value at the time of data retrieved.
        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
        rate:
          type: number
          description: For CDs, bonds, and other rate based holdings
        expirationDate:
          type: string
          description: For CDs, bonds, and other time‐based holdings
        inv401kSurce:
          $ref: '#/definitions/Inv401kSourceType'
        currency:
          $ref: '#/definitions/Currency'
        assetClasses:
          type: array
          description: Percent breakdown by asset class
          items:
            $ref: '#/definitions/Portion'
        fiAssetClasses:
          type: array
          description: Percent breakdown by FI-specific asset class percentage breakdown
          items:
            $ref: '#/definitions/FiPortion'
        fiAttributes:
          type: array
          description: Array of FI‐specific attributes
          items:
            $ref: '#/definitions/FiAttribute'
        taxLots:
          type: array
          description: Breakdown by tax lot
          items:
            $ref: '#/definitions/TaxLot'
    - allOf:
      - properties:
          mutualFundSecurity:
            $ref: '#/definitions/MutualFundSecurity'
      - properties:
          optionSecurity:
            $ref: '#/definitions/OptionSecurity'
      - properties:
          otherSecurity:
            $ref: '#/definitions/OtherSecurity'
      - properties:
          stockSecurity:
            $ref: '#/definitions/StockSecurity'
      - properties:
          sweepSecurity:
            $ref: '#/definitions/SweepSecurity'
      - properties:
          debtSecurity:
            $ref: '#/definitions/DebtSecurity'
    type: object
  InvestmentAccount:
    title: InvestmentAccount Entity
    allOf:
    - $ref: '#/definitions/Account'
    - properties:
        balanceAsOf:
          description: As-of date of balances
          type: string
        allowedCheckWriting:
          type: boolean
          description: Check writing privileges
        allowedOptionTrade:
          type: boolean
          description: Allowed to trade options
        currentValue:
          type: number
          description: Total current value of all investments
        holdings:
          type: array
          description: Array of holdings
          items:
            $ref: '#/definitions/Holding'
        openOrders:
          type: array
          description: Array of open orders
          items:
            $ref: '#/definitions/OpenOrder'
        contribution:
          type: array
          description: Describes how new contributions are distributed among the available
            securities
          items:
            $ref: '#/definitions/Contribution'
        vesting:
          type: array
          description: Provides the past, present, and future vesting schedule and
            percentages
          items:
            $ref: '#/definitions/Vesting'
        investmentLoans:
          type: array
          description: Array of investment loans
          items:
            $ref: '#/definitions/InvestmentLoan'
        availableCashBalance:
          description: Cash balance across all sub-accounts. Should include sweep
            funds.
          type: number
        margin:
          type: boolean
          description: Margin trading is allowed
        marginBalance:
          type: number
          description: Margin balance
        shortBalance:
          type: number
          description: Short balance
        rolloverAmount:
          type: number
          description: Rollover amount
        employerName:
          type: string
          description: Name of the employer in investment 401k Plan
        brokerId:
          type: string
          description: Unique identifier FI
        planId:
          type: string
          description: Plan number for Investment 401k plan
        calendaryearFor401K:
          type: string
          description: Date for this calendar year for 401K account
        balanceList:
          type: array
          description: Balance List. Name value pair aggregate.
          items:
            $ref: '#/definitions/InvestmentBalance'
        dailyChange:
          type: number
          description: Daily change
        percentageChange:
          type: number
          description: Percentage change
        transactions:
          type: array
          description: Array of Investment Transactions
          items:
            $ref: '#/definitions/InvestmentTransaction'
        pensionSource:
          type: array
          description: Array of Pension Source
          items:
            $ref: '#/definitions/PensionSource'
  InvestmentBalance:
    title: InvestmentBalance Entity
    properties:
      balanceName:
        type: string
        description: Name of the balance
      balanceDescription:
        type: string
        description: Description of balance
      balanceType:
        $ref: '#/definitions/InvestmentBalanceType'
      balanceValue:
        type: number
        description: Value of balance name
      balanceDate:
        type: string
        description: Date as of this balance
      currency:
        $ref: '#/definitions/Currency'
    type: object
  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
        description: Start date of the loan
      currentLoanBalance:
        type: number
        description: Current loan principal balance amount
      dateAsOf:
        type: string
        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:
        $ref: '#/definitions/LoanPaymentFrequency'
      loanPaymentInitial:
        type: number
        description: Initial number of loan payments
      loanPaymentsRemaining:
        type: integer
        description: Remaining number of loan payments
      loanMaturityDate:
        type: string
        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
        description: The next payment date for the loan
    type: object
  InvestmentTransaction:
    title: InvestmentTransaction Entity
    description: Investment Transaction will have following fields in FiAttributes
      - Posted, IssueDate, MaturityDate, InterestRate, OriginalAmount, CurrentValue,
      Disposition
    allOf:
    - $ref: '#/definitions/Transaction'
    - properties:
        transactionType:
          $ref: '#/definitions/InvestmentTransactionType'
        shares:
          type: number
          description: Required for stock, mutual funds. Number of shares (with decimals).
            Negative numbers indicate securities are being removed from the account.
        faceValue:
          type: number
          description: Cash value for bonds
        price:
          type: number
          description: Unit purchase price
        securityId:
          type: string
          description: Unique identifier of security
        securityIdType:
          $ref: '#/definitions/SecurityIdType'
        securityType:
          $ref: '#/definitions/SecurityType'
        symbol:
          type: string
          description: Ticker symbol
        markup:
          type: number
          description: Portion of unit price that is attributed to the dealer markup
        commission:
          type: number
          description: Transaction commission
        taxes:
          type: number
          description: Taxes on the trade
        fees:
          type: number
          description: Fees applied to the trade
        load:
          type: number
          description: Load on the transaction
        inv401kSource:
          $ref: '#/definitions/Inv401kSourceType'
        confirmationNumber:
          type: string
          description: Confirmation number of the transaction
        fractionalCash:
          type: number
          description: Cash for fractional units (used for stock splits)
        incomeType:
          $ref: '#/definitions/IncomeType'
        oldUnits:
          type: number
          description: Number of shares before split
        splitRatioNumerator:
          type: number
          description: Split ratio numerator
        splitRatioDenominator:
          type: number
          description: Split ratio denominator
        newUnits:
          type: number
          description: Number of shares after split
        subAccountSec:
          type: string
          enum:
          - CASH
          - MARGIN
          - SHORT
          - OTHER
          description: Sub-account security Type - CASH, MARGIN, SHORT and OTHERS
        subAccountFund:
          type: string
          enum:
          - CASH
          - MARGIN
          - SHORT
          - OTHER
          description: From which account money came in - CASH, MARGIN, SHORT and
            OTHERS
        loanId:
          type: string
          description: For 401k accounts only. This indicates the transaction was
            due to a loan or a loan repayment.
        loanPrincipal:
          type: number
          description: How much loan pre‐payment is principal
        loanInterest:
          type: number
          description: How much loan pre‐payment is interest
        payrollDate:
          type: string
          description: The date for the 401k transaction was obtained in payroll
        priorYearContrib:
          type: boolean
          description: Indicates this buy was made using prior year's contribution.
        withholding:
          type: number
          description: Federal tax withholding
        taxExempt:
          type: boolean
          description: Tax‐exempt transaction
        gain:
          type: number
          description: For sales
        stateWithholding:
          type: number
          description: State tax withholding
        penalty:
          type: number
          description: Indicates amount withheld due to a penalty
        runningBalance:
          type: number
          description: Running balance of the position
        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:
          $ref: '#/definitions/UnitType'
        transactionReason:
          $ref: '#/definitions/TransactionReason'
        accruedInterest:
          type: number
          description: Accrued Interest
        transferAction:
          type: string
          description: Transfer direction [IN or OUT]
          enum:
          - IN
          - OUT
        positionType:
          $ref: '#/definitions/PositionType'
      type: object
  LineItem:
    title: LineItem Entity
    properties:
      description:
        type: string
        description: The description of the line item
      amount:
        type: number
        description: The amount of money attributable to this line item
      checkNumber:
        type: integer
        description: Check number
      memo:
        type: string
        maxLength: 255
        description: Secondary item description
      reference:
        type: string
        description: A reference number
      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: object
        properties:
          image:
            type: array
            items:
              $ref: '#/definitions/HateoasLink'
            description: Array of Image Identifiers (unique to Transaction) used to
              retrieve Images of check or transaction receipt
    type: object
  LoanAccount:
    title: LoanAccount Entity
    description: Loan accounts will have following fields in FiAttributes - BorrowerName,
      FacilityName, OutstandingBal, OutstandingBalLoanCurr, MaturityDate
    allOf:
    - $ref: '#/definitions/Account'
    - properties:
        balanceAsOf:
          type: string
          description: As-of date for balances
        principalBalance:
          type: number
          description: Principal balance of loan
        escrowBalance:
          type: number
          description: Escrow balance of loan
        originalPrincipal:
          type: number
          description: Original principal of loan
        originatingDate:
          type: string
          description: Loan origination date
        loanTerm:
          type: integer
          description: Term of loan in months
        totalNumberOfPayments:
          type: integer
          description: Total number of payments
        nextPaymentAmount:
          type: number
          description: Amount of next payment
        nextPaymentDate:
          type: string
          description: Date of next payment
        paymentFrequency:
          $ref: '#/definitions/PaymentFrequency'
        compoundingPeriod:
          $ref: '#/definitions/CompoundingPeriod'
        payOffAmount:
          type: number
          description: Payoff amount
        lastPaymentAmount:
          type: number
          description: Last payment amount
        lastPaymentDate:
          type: string
          description: Last payment date
        maturityDate:
          type: string
          description: Maturity date
        interestPaidYearToDate:
          type: number
          description: Interest paid year to date
        transactions:
          type: array
          items:
            $ref: '#/definitions/LoanTransaction'
      type: object
  LoanTransaction:
    title: LoanTransaction Entity
    allOf:
    - $ref: '#/definitions/Transaction'
    - properties:
        transactionType:
          $ref: '#/definitions/LoanTransactionType'
        paymentDetails:
          $ref: '#/definitions/PaymentDetails'
      type: object
  LocAccount:
    title: LocAccount Entity
    description: Loc accounts will have following fields in FiAttributes - StatementBalance
    allOf:
    - $ref: '#/definitions/Account'
    - properties:
        balanceAsOf:
          type: string
          description: As-of date for balances
        creditLine:
          type: number
          description: Credit limit
        availableCredit:
          type: number
          description: Available credit
        nextPaymentAmount:
          type: number
          description: Amount of next payment
        nextPaymentDate:
          type: string
          description: Due date of next payment
        principalBalance:
          type: number
          description: Principal balance
        currentBalance:
          type: number
          description: Current balance LOC
        minimumPaymentAmount:
          type: number
          description: Minimum payment amount
        lastPaymentAmount:
          type: number
          description: Last payment amount
        lastPaymentDate:
          type: string
          description: Last payment date
        pastDueAmount:
          type: number
          description: Past Due Amount
        lastStmtBalance:
          type: number
          description: Last Statement Balance
        lastStmtDate:
          type: string
          description: Last Statement Date
        pointsAccrued:
          type: number
          description: Points accrued
        currentRewardsBalance:
          type: number
          description: Current rewards balance
        pointsRedeemed:
          type: number
          description: Points redeemed
        purchasesApr:
          type: number
          description: Purchases APR
        advancesApr:
          type: number
          description: Advances APR
        cashAdvanceLimit:
          type: number
          description: Cash advance limit
        availableCash:
          type: number
          description: Available cash
        financeCharges:
          type: number
          description: Finance charges
        transactions:
          type: array
          items:
            $ref: '#/definitions/LocTransaction'
  LocTransaction:
    title: LocTransaction Entity
    description: Line of Credit Transaction will have following fields in FiAttributes
      - Posted, Pending, ValueDate
    allOf:
    - $ref: '#/definitions/Transaction'
    - properties:
        transactionType:
          $ref: '#/definitions/LocTransactionType'
        checkNumber:
          type: integer
          description: Check number
        paymentDetails:
          $ref: '#/definitions/PaymentDetails'
      type: object
  MutualFundSecurity:
    title: MutualFundSecurity Entity
    properties:
      mutualFundType:
        $ref: '#/definitions/MutualFundType'
      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
        description: As-of date for yield value
  OpenOrder:
    title: OpenOrder Entity
    properties:
      orderId:
        type: string
        maxLength: 256
      securityId:
        type: string
      securityIdType:
        $ref: '#/definitions/SecurityIdType'
      symbol:
        type: string
        description: Market symbol
      description:
        type: string
        description: Description of order
      units:
        type: number
        description: Number of units (shares or bonds etc)
      orderType:
        $ref: '#/definitions/OrderType'
      orderDate:
        type: string
        description: Order date
      unitPrice:
        type: number
        description: Unit price
      unitType:
        $ref: '#/definitions/UnitType'
      orderDuration:
        $ref: '#/definitions/OrderDuration'
      subAccount:
        type: string
        enum:
        - CASH
        - MARGIN
        - SHORT
        - OTHER
      limitPrice:
        type: number
        description: Limit Price
      stopPrice:
        type: number
        description: Stop price
      inv401kSource:
        $ref: '#/definitions/Inv401kSourceType'
    type: object
  OptionSecurity:
    title: OptionSecurity Entity
    properties:
      secured:
        $ref: '#/definitions/Secured'
      optionType:
        $ref: '#/definitions/OptionType'
      strikePrice:
        type: number
        description: Strike price / Unit price
      expireDate:
        type: string
        description: Expiration date of option
      sharesPerContract:
        type: number
        description: Shares per contract
  OtherSecurity:
    title: OtherSecurity Entity
    properties:
      typeDescription:
        type: string
        description: Description of Other Security
  PaymentDetails:
    title: PaymentDetails Entity
    description: Breakdown of payment details
    properties:
      principalAmount:
        type: number
        description: The amount of payment applied to principal
      interestAmount:
        type: number
        description: The amount of payment applied to interest
      insuranceAmount:
        type: number
        description: The amount of payment applied to life/health/accident insurance
          on the loan
      escrowAmount:
        type: number
        description: The amount of payment applied to escrow
      pmiAmount:
        type: number
        description: The amount of payment applied to PMI
      feesAmount:
        type: number
        description: The amount of payment applied to fees
    type: object
  Portion:
    title: Portion Entity
    properties:
      assetClass:
        $ref: '#/definitions/AssetClass'
      percent:
        type: number
    type: object
  StockSecurity:
    title: StockSecurity Entity
    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:
        $ref: '#/definitions/StockType'
      yield:
        type: number
        description: Current yield
      yieldAsOfDate:
        type: string
        description: Yield as-of date
  SweepSecurity:
    title: SweepSecurity Entity
    properties:
      currentBalance:
        type: number
        description: Balance of funds in account
      availableBalance:
        type: number
        description: Balance of funds available for use
      balanceAsOf:
        type: string
        description: As-of date of balances
      checks:
        type: boolean
        description: Whether or not checks can be written on the account
  TaxLot:
    title: TaxLot
    properties:
      originalPurchaseDate:
        type: string
        description: Lot acquired date
      quantity:
        type: number
        description: Lot quantity
      purchasedPrice:
        type: number
        description: Original purchase price
      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
      postionType:
        $ref: '#/definitions/PositionType'
    type: object
  Transaction:
    title: Transaction
    properties:
      accountId:
        description: Corresponds to AccountId in Account
        type: string
        maxLength: 256
      transactionId:
        description: Long term persistent identity of the transaction (unique to account)
        type: string
        maxLength: 256
      referenceTransactionId:
        description: 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.
        type: string
        maxLength: 256
      postedTimestamp:
        description: The date and time that the transaction was posted to the account.
          If not provided then TransactionTimestamp can be used as PostedTimeStamp.
        type: string
      transactionTimestamp:
        description: The date and time that the transaction was added to the server
          backend systems
        type: string
      description:
        type: string
        description: The description of the transaction
      memo:
        type: string
        maxLength: 255
        description: Secondary transaction description
      debitCreditMemo:
        $ref: '#/definitions/DebitCreditMemo'
      category:
        type: string
        description: Transaction category, preferably MCC or SIC.
      subCategory:
        type: string
        description: Transaction category detail
      reference:
        type: string
        description: A tracking reference identifier
      status:
        $ref: '#/definitions/TransactionStatus'
      amount:
        type: number
        description: The amount of money in the account currency
      foreignAmount:
        type: number
        description: The amount of money in the foreign currency
      foreignCurrency:
        $ref: '#/definitions/Iso4217Code'
      imageIds:
        type: array
        items:
          type: string
        description: Array of Image Identifiers (unique to Transaction) used to retrieve
          Images of check or transaction receipt
      lineItem:
        type: array
        description: Breakdown of the transaction details
        items:
          $ref: '#/definitions/LineItem'
      fiAttributes:
        type: array
        description: Array of FI-specific attributes
        items:
          $ref: '#/definitions/FiAttribute'
      links:
        type: object
        properties:
          image:
            type: array
            items:
              $ref: '#/definitions/HateoasLink'
            description: Array of Image Identifiers (unique to Transaction) used to
              retrieve Images of check or transaction receipt
    type: object
  Transactions:
    title: Transactions Entity
    description: Optionally paginated array of transactions
    allOf:
    - $ref: '#/definitions/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:
            allOf:
            - type: object
              properties:
                depositTransaction:
                  $ref: '#/definitions/DepositTransaction'
            - type: object
              properties:
                loanTransaction:
                  $ref: '#/definitions/LoanTransaction'
            - type: object
              properties:
                locTransaction:
                  $ref: '#/definitions/LocTransaction'
            - type: object
              properties:
                investmentTransaction:
                  $ref: '#/definitions/InvestmentTransaction'
            - type: object
              properties:
                insuranceTransaction:
                  $ref: '#/definitions/InsuranceTransaction'
  Vesting:
    title: Vesting Entity
    properties:
      vestingDate:
        type: string
        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
  InsuranceAccount:
    title: InsuranceAccount Entity
    allOf:
    - $ref: '#/definitions/Account'
    - type: object
      properties:
        accountCategory:
          type: string
          enum:
          - DEPOSIT_ACCOUNT
          - INVESTMENT_ACCOUNT
          - LOAN_ACCOUNT
          - LOC_ACCOUNT
          - INSURANCE_ACCOUNT
        policyPremium:
          type: number
          description: The amount of the user's premium
        policyPremiumTerm:
          type: string
          enum:
          - MONTHLY
          - ANNUAL
        policyStartDate:
          type: string
        policyEndDate:
          type: string
        policyCoverageAmount:
          type: number
          description: Total amount of money the user is insured for
        transactions:
          type: array
          items:
            $ref: '#/definitions/InsuranceTransaction'
        bills:
          type: array
          items:
            $ref: '#/definitions/Bills'
  InsuranceTransaction:
    title: InsuranceTransaction
    description: An Insurance Transaction
    allOf:
    - $ref: '#/definitions/Transaction'
    - type: object
      properties:
        transactionType:
          type: string
          enum:
          - PAYMENT
          - FEE
          - ADJUSTMENT
          - INTEREST
  Bills:
    title: Bills Entity
    properties:
      totalPaymentDue:
        type: number
        description: Total payment due or next payment due.  Monthly payment due for
          loans.
      minimumPaymentDue:
        type: number
      dueDate:
        type: string
        description: The date that the payment is due
      autoPayEnabled:
        type: boolean
        description: Whether the user's bill is paid automatically
      autoPayAmount:
        type: number
        description: The amount of money the user has set to autopay this bill
      autoPayDate:
        type: string
        description: The date the autopayment is set to trigger for this bill
      pastDueAmount:
        type: number
        description: The amount that the user should have already paid. Negative value
          if user owes money.
      lastPaymentAmount:
        type: number
      lastPaymentDate:
        type: string
      statementBalance:
        type: number
        description: The amount of the last statement.  Negative value if user owes
          money.
      statementDate:
        type: string
        description: The date the statement was issued
  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
        description: Date benefit was calculated
      frequency:
        $ref: '#/definitions/PaymentFrequency'
      startDate:
        type: string
        description: Assumed retirement date ‐ As of date amount is payable
  AnnuityAccount:
    title: AnnuityAccount Entity
    properties:
      annuityProductType:
        $ref: '#/definitions/AnnuityProductType'
      annuityValueBasis:
        $ref: '#/definitions/AnnuityValueBasis'
      paymentAmount:
        type: number
        description: Amount of the recurring payment
      paymentFrequency:
        $ref: '#/definitions/PaymentFrequency'
      paymentStartDate:
        type: string
        description: Date of first payment; could be a future date
      paymentEndDate:
        type: string
        description: Date last payment will be made
      totalPaymentCount:
        type: number
        description: Total number of payments that will be produced by the annuity
      netPresentValue:
        type: number
        description: Surrender or cash balance value
      annualIncrease:
        type: number
        description: Percent or dollar amount of annual payment increase
      annualIncreaseType:
        $ref: '#/definitions/AnnualIncreaseType'
      periodCertainGuarantee:
        $ref: '#/definitions/PeriodCertainGuarantee'
  AccountType:
    title: AccountType
    type: string
    enum:
    - 401A
    - 401K
    - 403B
    - "529"
    - AUTOLOAN
    - CD
    - CHARGE
    - CHECKING
    - COMMERCIALLINEOFCREDIT
    - COMMERCIALLOAN
    - COVERDELL
    - CREDITCARD
    - ESCROW
    - ESOP
    - GUARDIAN
    - HOMEEQUITYLOAN
    - HOMELINEOFCREDIT
    - INSTITUTIONALTRUST
    - INSTALLMENT
    - IRA
    - KEOGH
    - LINEOFCREDIT
    - LOAN
    - MILITARYLOAN
    - MONEYMARKET
    - MORTGAGE
    - PERSONALLOAN
    - ROLLOVER
    - ROTH
    - SARSEP
    - SAVINGS
    - SMBLOAN
    - STUDENTLOAN
    - TAXABLE
    - TDA
    - TRUST
    - UGMA
    - UTMA
    - ANNUITY
  AnnuityProductType:
    title: AnnuityProductType
    type: string
    enum:
    - CURRENCY
    - SHARES
  AnnuityValueBasis:
    title: AnnuityValueBasis
    type: string
    enum:
    - FIXED
    - VARIABLE
  AnnualIncreaseType:
    title: AnnualIncreaseType
    type: string
    enum:
    - FIXED
    - PERCENT
    - DOLLAR
  AssetClass:
    title: AssetClass
    type: string
    enum:
    - DOMESTICBOND
    - INTLBOND
    - INTLSTOCK
    - LARGESTOCK
    - MONEYMARKET
    - OTHER
    - SMALLSTOCK
  BalanceType:
    title: BalanceType
    description: ASSET (positive transaction amount increases balance) LIABILITY (positive
      transaction amount decreases balance)
    type: string
    enum:
    - ASSET
    - LIABILITY
  CallType:
    title: CallType
    description: Type of next call (CALL, PUT, PREFUND, MATURITY)
    type: string
    enum:
    - CALL
    - MATURITY
    - PREFUND
    - PUT
  CompoundingPeriod:
    title: CompoundingPeriod
    description: DAILY, WEEKLY, BIWEEKLY, SEMIMONTHLY, MONTHLY, SEMIANNUALLY, ANNUALLY
    type: string
    enum:
    - ANNUALLY
    - BIWEEKLY
    - DAILY
    - MONTHLY
    - SEMIANNUALLY
    - SEMIMONTHLY
    - WEEKLY
  CouponMatureFrequency:
    title: CouponMatureFrequency
    description: When coupons mature (MONTHLY, QUARTERLY,  SEMIANNUAL, ANNUAL, OTHER)
    type: string
    enum:
    - ANNUAL
    - MONTHLY
    - OTHER
    - QUARTERLY
    - SEMIANNUAL
  DebitCreditMemo:
    title: DebitCreditMemo
    type: string
    enum:
    - CREDIT
    - DEBIT
    - MEMO
  DebtClass:
    title: DebtClass
    description: Classification of debt (TREASURY, MUNICIPAL, CORPORATE, OTHER)
    type: string
    enum:
    - CORPORATE
    - MUNICIPAL
    - OTHER
    - TREASURY
  DebtType:
    title: DebtType
    description: Debt type (COUPON, ZERO)
    type: string
    enum:
    - COUPON
    - ZERO
  DepositTransactionType:
    title: DepositTransaction Type
    description: CHECK, WITHDRAWAL, TRANSFER, POSDEBIT, ATMWITHDRAWAL. BILLPAYMENT,
      FEE, DEPOSIT, ADJUSTMENT, INTEREST, DIVIDEND, DIRECTDEPOSIT, ATMDEPOSIT, POSCREDIT
    type: string
    enum:
    - ADJUSTMENT
    - ATMDEPOSIT
    - ATMWITHDRAWAL
    - BILLPAYMENT
    - CHECK
    - DEPOSIT
    - DIRECTDEPOSIT
    - DIVIDEND
    - FEE INTEREST
    - POSCREDIT
    - POSDEBIT
    - TRANSFER
    - WITHDRAWAL
  HeldInAccount:
    title: HeldInAccount
    description: Sub-account CASH, MARGIN, SHORT, OTHER
    type: string
    enum:
    - CASH
    - MARGIN
    - OTHER
    - SHORT
  HoldingSubType:
    title: HoldingSubType
    description: MONEYMARKET, CASH
    type: string
    enum:
    - CASH
    - MONEYMARKET
  HoldingType:
    title: HoldingType
    description: STOCK, BOND, MUTUALFUND, CD, ANNUITY, OPTION, OTHER
    type: string
    enum:
    - ANNUITY
    - BOND
    - CD
    - MUTUALFUND
    - OPTION
    - OTHER
    - STOCK
  IncomeType:
    title: IncomeType
    description: Type of investment income - CGLONG (capital gains-long term), CGSHORT
      (capital gains-short term), MISC
    type: string
    enum:
    - CGLONG
    - CGSHORT
    - MISC
  InterestRateType:
    title: InterestRateType
    type: string
    enum:
    - FIXED
    - VARIABLE
  Inv401kSourceType:
    title: Inv401kSourceType
    description: Source of money. PRETAX, AFTERTAX, MATCH, PROFITSHARING, ROLLOVER
      OTHERVEST, OTHERNONVEST
    type: string
    enum:
    - AFTERTAX
    - MATCH
    - OTHERNONVEST
    - OTHERVEST
    - PRETAX
    - PROFITSHARING
    - ROLLOVER
  InvestmentBalanceType:
    title: InvestmentBalanceType
    type: string
    enum:
    - AMOUNT
    - PERCENTAGE
  InvestmentTransactionType:
    title: InvestmentTransactionType
    description: 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
    type: string
    enum:
    - ADJUSTMENT
    - ATM
    - CASH
    - CHECK
    - CLOSURE
    - CLOSUREOPT
    - CONTRIBUTION
    - DEP
    - DEPOSIT
    - DIRECTDEBIT
    - DIRECTDEP
    - DIV
    - DIVIDEND
    - DIVIDENDREINVEST
    - EXPENSE
    - FEE
    - INCOME
    - INTEREST
    - INVEXPENSE
    - JRNLFUND
    - JRNLSEC
    - MARGININTEREST
    - OPTIONEXERCISE
    - OPTIONEXPIRATION
    - OTHER
    - PAYMENT
    - POS
    - PURCHASED
    - PURCHASEDTOCOVER
    - PURCHASETOCLOSE
    - PURCHASETOOPEN
    - REINVESTOFINCOME
    - REPEATPMT
    - RETURNOFCAPITAL
    - SOLD
    - SOLDTOCLOSE
    - SOLDTOOPEN
    - SPLIT
    - SRVCHG
    - TRANSFER
    - XFER
  Iso4217Code:
    title: Iso4217Code
    description: The ISO 4217 code of the foreign currency
    type: string
    enum:
    - AED
    - AFN
    - ALL
    - AMD
    - ANG
    - AOA
    - ARS
    - AUD
    - AWG
    - AZN
    - BAM
    - BBD
    - BDT
    - BGN
    - BHD
    - BIF
    - BMD
    - BND
    - BOB
    - BOV
    - BRL
    - BSD
    - BTN
    - BWP
    - BYR
    - BZD
    - CAD
    - CDF
    - CHE
    - CHF
    - CHW
    - CLF
    - CLP
    - CNY
    - COP
    - COU
    - CRC
    - CUC
    - CUP
    - CVE
    - CZK
    - DJF
    - DKK
    - DOP
    - DZD
    - EGP
    - ERN
    - ETB
    - EUR
    - FJD
    - FKP
    - GBP
    - GEL
    - GHS
    - GIP
    - GMD
    - GNF
    - GTQ
    - GYD
    - HKD
    - HNL
    - HRK
    - HTG
    - HUF
    - IDR
    - ILS
    - INR
    - IQD
    - IRR
    - ISK
    - JMD
    - JOD
    - JPY
    - KES
    - KGS
    - KHR
    - KMF
    - KPW
    - KRW
    - KWD
    - KYD
    - KZT
    - LAK
    - LBP
    - LKR
    - LRD
    - LSL
    - LYD
    - MAD
    - MDL
    - MGA
    - MKD
    - MMK
    - MNT
    - MOP
    - MRO
    - MUR
    - MVR
    - MWK
    - MXN
    - MXV
    - MYR
    - MZN
    - NAD
    - NGN
    - NIO
    - NOK
    - NPR
    - NZD
    - OMR
    - PAB
    - PEN
    - PGK
    - PHP
    - PKR
    - PLN
    - PYG
    - QAR
    - RON
    - RSD
    - RUB
    - RWF
    - SAR
    - SBD
    - SCR
    - SDG
    - SEK
    - SGD
    - SHP
    - SLL
    - SOS
    - SRD
    - SSP
    - STD
    - SVC
    - SYP
    - SZL
    - THB
    - TJS
    - TMT
    - TND
    - TOP
    - TRY
    - TTD
    - TWD
    - TZS
    - UAH
    - UGX
    - USD
    - USN
    - UYI
    - UYU
    - UZS
    - VEF
    - VND
    - VUV
    - WST
    - XAF
    - XAG
    - XAU
    - XBA
    - XBB
    - XBC
    - XBD
    - XCD
    - XDR
    - XOF
    - XPD
    - XPF
    - XPT
    - XSU
    - XTS
    - XUA
    - XXX
    - YER
    - ZAR
    - ZMW
    - ZWL
  LoanPaymentFrequency:
    title: LoanPaymentFrequency
    description: WEEKLY, BIWEEKLY, TWICEMONTHLY, MONTHLY, FOURWEEKS, BIMONTHLY, QUARTERLY,
      SEMIANNUALLY, ANNUALLY, OTHER
    type: string
    enum:
    - ANNUALLY
    - BIMONTHLY
    - BIWEEKLY
    - FOURWEEKS
    - MONTHLY
    - OTHER
    - QUARTERLY
    - SEMIANNUALLY
    - TWICEMONTHLY
    - WEEKLY
  LoanTransactionType:
    title: LoanTransactionType
    description: PAYMENT, FEE, ADJUSTMENT, INTEREST
    type: string
    enum:
    - ADJUSTMENT
    - FEE
    - INTEREST
    - PAYMENT
  LocTransactionType:
    title: LocTransactionType
    description: CHECK, WITHDRAWAL, PAYMENT, FEE, ADJUSTMENT, INTEREST
    type: string
    enum:
    - ADJUSTMENT
    - CHECK
    - FEE
    - INTEREST
    - PAYMENT
    - WITHDRAWAL
  MutualFundType:
    title: MutualFundType
    type: string
    description: Mutual fund type
    enum:
    - OPENEND
    - CLOSEEND
    - OTHER
  OptionType:
    title: OptionType
    type: string
    enum:
    - CALL
    - PUT
  OrderDuration:
    title: OrderDuration
    description: This order is good for DAY, GOODTILLCANCEL, IMMEDIATE
    type: string
    enum:
    - DAY
    - GOODTILLCANCEL
    - IMMEDIATE
  OrderType:
    title: OrderType
    type: string
    enum:
    - BUY
    - SELL
    - BUYTOCOVER
    - BUYTOOPEN
    - SELLTOCOVER
    - SELLTOOPEN
    - SELLSHORT
    - SELLCLOSE
  PaymentFrequency:
    title: PaymentFrequency
    description: DAILY, WEEKLY, BIWEEKLY, SEMIMONTHLY, MONTHLY, SEMIANNUALLY, ANNUALLY
    type: string
    enum:
    - ANNUALLY
    - BIWEEKLY
    - DAILY
    - MONTHLY
    - SEMIANNUALLY
    - SEMIMONTHLY
    - WEEKLY
  PeriodCertainGuarantee:
    title: PeriodCertainGuarante
    type: string
    enum:
    - NO PERIOD CERTAIN
    - 5-YEAR
    - 10-YEAR
    - 20-YEAR
    - 30-YEAR
  PositionType:
    title: PositionType
    description: LONG, SHORT
    type: string
    enum:
    - LONG
    - SHORT
  Secured:
    title: Secured
    type: string
    enum:
    - COVERED
    - NAKED
    description: How the option is secured
  SecurityIdType:
    title: SecurityIdType
    type: string
    description: Security identifier type
    enum:
    - CUSIP
    - ISIN
    - SEDOL
    - SICC
    - VALOR
    - WKN
  SecurityType:
    title: SecurityType
    type: string
    enum:
    - BOND
    - DEBT
    - MUTUALFUND
    - OPTION
    - OTHER
    - STOCK
    - SWEEP
  StockType:
    title: StockType
    type: string
    enum:
    - COMMON
    - CONVERTIBLE
    - OTHER
    - PREFERRED
  TransactionReason:
    title: TransactionReason
    description: Reason for this transaction; CALL (the debt was called), SELL (the
      debt was sold), MATURITY (the debt reached maturity)
    type: string
    enum:
    - CALL
    - MATURITY
    - SELL
  TransactionStatus:
    title: TransactionStatus
    type: string
    enum:
    - AUTHORIZATION
    - MEMO
    - PENDING
    - POSTED
  UnitType:
    title: UnitType
    type: string
    enum:
    - CURRENCY
    - SHARES
paths:
  /accounts:
    get:
      x-dataclassification-code: Confidential
      operationId: Search for Accounts
      tags:
      - Account Information
      summary: Search for Authorized Accounts
      description: Get a list of all your accounts as a starting point for more specific
        requests.  This call will return accountIDs and account balances.
      parameters:
      - $ref: '#/parameters/x-api-key'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/accountIds'
      - $ref: '#/parameters/startTime'
      - $ref: '#/parameters/endTime'
      - $ref: '#/parameters/resultType'
      - $ref: '#/parameters/offset'
      - $ref: '#/parameters/limit'
      responses:
        200:
          description: Everything worked as expected, array of accounts returned
          schema:
            $ref: '#/definitions/Accounts'
          examples:
            example1:
              value:
                page:
                  nextOffset: "2"
                  total: 3
                links:
                  next:
                    href: /accounts?offSet=2&limit=10
                accounts:
                - depositAccount:
                    accountId: "10001"
                    nickname: My Checking Acc XXXX3223
                    status: OPEN
                    nickName: Account 1
                    balanceAsOf: "2017-11-05T13:15:30.751Z"
                    currentBalance: 13300.35
                - depositAccount:
                    accountId: "10002"
                    nickname: My Checking Acc XXXX4443
                    status: OPEN
                    nickName: Account 2
                    balanceAsOf: "2017-11-05T13:15:30.751Z"
                    currentBalance: 332.22
                - loanAccount:
                    accountId: "20001"
                    nickname: My Mortgage Acc XXXX9979
                    status: OPEN
                    nickName: Account 3
                    balanceAsOf: "2017-11-05T13:15:30.751Z"
                    principalBalance: 133000.35
                    loanTerm: 30
                    nextPaymentDate: "2017-12-01T12:00:00.000Z"
                    nextPaymentAmount: 2333.32
        206:
          description: Everything worked as expected. Partial content returned based
            on the range set in the header
          schema:
            $ref: '#/definitions/Accounts'
        400:
          description: The request was not accepted, often caused by a missing required
            parameter
          schema:
            $ref: '#/definitions/Error'
        401:
          description: API key provided was invalid
          schema:
            $ref: '#/definitions/Error'
        403:
          description: Forbidden - the user is not authorized to use this resource
          schema:
            $ref: '#/definitions/Error'
        404:
          description: The requested resource could not be found
          schema:
            $ref: '#/definitions/Error'
        415:
          description: Unsupported Media Type
          schema:
            $ref: '#/definitions/Error'
        429:
          description: Too many requests hit the API in too short of a period
          schema:
            $ref: '#/definitions/Error'
        500:
          description: Internal Server Error – Error on our side (Rare)
          schema:
            $ref: '#/definitions/Error'
        502:
          description: Bad Gateway – Error on our side (Rare)
          schema:
            $ref: '#/definitions/Error'
        504:
          description: Integration or Backend Timeout – Error on our side (Rare)
          schema:
            $ref: '#/definitions/Error'
  /accounts/{accountId}:
    get:
      x-dataclassification-code: Confidential
      operationId: Get an Account
      tags:
      - Account Information
      description: Check real-time balances for requested accounts.
      summary: Get an Account
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - $ref: '#/parameters/x-api-key'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/accountId'
      responses:
        200:
          description: The returned can be one of; LoanAccount, DepositAccount, LocAccount,
            InvestmentAccount, InsuranceAccount or AnnuityAccount.
          examples:
            loanAccount:
              accountId: "12345678"
              accountType: LOAN
              displayName: XXXXX4567
              status: OPEN
              description: 30 Year Mortgage
              nickName: My Home Mortgage
              currency: USD
              interestRate: 4
              loanTerm: 0
              totalNumberOfPayments: 0
          schema:
            $ref: '#/definitions/AccountWithDetails'
        206:
          description: Everything worked as expected. Partial content returned based
            on the range set in the header
          schema:
            $ref: '#/definitions/Accounts'
        400:
          description: The request was not accepted, often caused by a missing required
            parameter
          schema:
            $ref: '#/definitions/Error'
        401:
          description: API key provided was invalid
          schema:
            $ref: '#/definitions/Error'
        403:
          description: Forbidden - the user is not authorized to use this resource
          schema:
            $ref: '#/definitions/Error'
        404:
          description: The requested resource could not be found
          schema:
            $ref: '#/definitions/Error'
        415:
          description: Unsupported Media Type
          schema:
            $ref: '#/definitions/Error'
        429:
          description: Too many requests hit the API in too short of a period
          schema:
            $ref: '#/definitions/Error'
        500:
          description: Internal Server Error – Error on our side (Rare)
          schema:
            $ref: '#/definitions/Error'
        502:
          description: Bad Gateway – Error on our side (Rare)
          schema:
            $ref: '#/definitions/Error'
        504:
          description: Integration or Backend Timeout – Error on our side (Rare)
          schema:
            $ref: '#/definitions/Error'
  /accounts/{accountId}/transactions:
    get:
      x-dataclassification-code: Confidential
      operationId: Search for Account Transactions
      tags:
      - Account Transactions
      description: Get a detailed transaction history for requested accounts.
      summary: Search for Account Transactions
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - $ref: '#/parameters/x-api-key'
      - $ref: '#/parameters/authorization'
      - $ref: '#/parameters/accountId'
      - $ref: '#/parameters/startTime'
      - $ref: '#/parameters/endTime'
      - $ref: '#/parameters/offset'
      - $ref: '#/parameters/limit'
      responses:
        200:
          description: Paged collection of transactions, which can be one of DepositTransaction,
            LoanTransaction, LocTransaction or InvestmentTransaction
          schema:
            $ref: '#/definitions/Transactions'
          examples:
            example1:
              value:
                page:
                  nextOffset: "2"
                  total: 3
                links:
                  next:
                    href: /accounts/33333/transactions?offSet=2&limit=10
                transactions:
                - depositTransaction:
                    accountId: "10001"
                    transactionId: "20001"
                    transactionCategory: DEPOSIT_ACCOUNT_TRANSACTION
                    postedTimestamp: "2017-11-05T13:15:30.751Z"
                    description: Direct depoisit from XYZ
                    debitCreditMemo: CREDIT
                    amount: "1200.42"
                - depositTransaction:
                    accountId: "10001"
                    transactionId: "20001"
                    transactionCategory: DEPOSIT_ACCOUNT_TRANSACTION
                    postedTimestamp: "2017-11-05T13:15:31.751Z"
                    description: Withdrawal from ATM
                    debitCreditMemo: DEBIT
                    amount: "1200.42"
        206:
          description: Everything worked as expected. Partial content returned based
            on the range set in the header
          schema:
            $ref: '#/definitions/Accounts'
        400:
          description: The request was not accepted, often caused by a missing required
            parameter
          schema:
            $ref: '#/definitions/Error'
        401:
          description: API key provided was invalid
          schema:
            $ref: '#/definitions/Error'
        403:
          description: Forbidden - the user is not authorized to use this resource
          schema:
            $ref: '#/definitions/Error'
        404:
          description: The requested resource could not be found
          schema:
            $ref: '#/definitions/Error'
        415:
          description: Unsupported Media Type
          schema:
            $ref: '#/definitions/Error'
        429:
          description: Too many requests hit the API in too short of a period
          schema:
            $ref: '#/definitions/Error'
        500:
          description: Internal Server Error – Error on our side (Rare)
          schema:
            $ref: '#/definitions/Error'
        502:
          description: Bad Gateway – Error on our side (Rare)
          schema:
            $ref: '#/definitions/Error'
        504:
          description: Integration or Backend Timeout – Error on our side (Rare)
          schema:
            $ref: '#/definitions/Error'
host: sandbox-open-api.bmo.com
...
