--- 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 ...