openapi: 3.0.1
info:
version: 1.0.0
title: Authorization Tokens Accounts Credentials API
description: 'Use the `oauth` endpoint to generate the secure, time-limited JSON Web Tokens (JWTs) used to authorize access to APIs and components.
To request a token, click Authorize and enter the following credentials:
* Username - Your Client ID.
* Password - Your Client Secret.'
servers:
- url: https://www.us-api.morningstar.com/token
description: PROD US
- url: https://www.emea-api.morningstar.com/token
description: PROD EMEA
- url: https://www.apac-api.morningstar.com/token
description: PROD APAC
security:
- BasicAuth: []
tags:
- name: Credentials
paths:
/credentials/accounts:
get:
tags:
- Credentials
summary: Get credentials and account information
description: "Get credentials and any associated accounts in a single list. Credentials that have no associated accounts will also be included. This response also includes information about asynchronous activities for the credentials and accounts. Use the `limitToProgressAfter` parameter to request that information for asynchronous activities in the response should be limited to those initiated after the specified point in time. The applicable scope of this endpoint is always a single authenticated investor. This endpoint can provide information on asynchronous activity for the current session or for all activity in the system. Use the scope parameter with value session to request information about activity initiated during the current session. Use the `scope` parameter with value global to request information for all activity in the system. When `scope` is `global`, asynchronous activity progress will be available for terminated sessions up to 15 minutes after completion of that activity. If the `scope` parameter is not provided then the endpoint will report on activity for the current session, if there is one. If there is no current session (UIM) then it will report on all activity for the authenticated investor. You can specify the number of the page to return and the number of records per page. \n **Response Model** - Special situations for Credentials and Accounts\n Credentials and accounts in the aggregation system are complex objects for which the following statements are true: • Credentials or accounts can be incomplete, meaning they do not contain enough information to access data from the Financial Institution. This situation can occur if the user has not yet provided all necessary information (e.g. has not yet provided their password or completed OAUTH authorization) • The aggregation system may encounter a variety of errors when attempting to use a credential or an account to access data from a Financial Institution. These errors can occur because the information in the object is incorrect (e.g. a wrong password), problems with the aggregation system’s support (e.g. Financial Institution web site has changed and we need to update our support), or problems at the Financial Institution (e.g. site not available). These conditions are not errors from an application perspective, instead they are “normal” things that can happen in the day-to-day of aggregation activities. It is important to properly represent these conditions to the end user and, whenever possible, help the user to understand when they must take action to resolve the condition or when the solution is not under their control. Due to the complexity of these error conditions, it is not always possible to make the condition clear to the user. ByAllAccounts continues to work to improve the clarity of these error conditions. In addition to these situations, the system may be asynchronously performing activities that the user requested, directly or indirectly, on credentials and accounts. For example, if a request was made to obtain the latest data for an account then an asynchronous aggregation process is going on in the background and we want the end user to understand that it is in process and when that process completes. This endpoint includes information at the individual object level (credential or account) as well as the summary level (for the collection) to aid in the presentation of this information to the user. Note also that any asynchronous activity can result in the clearing of an error condition or the encountering of a new condition, so that information should be queried and redisplayed upon completion of the asynchronous activity. For Supplemental Response Model Information including Account and Credential Error Information and Activity in Progress information, refer to the [Overview](/apis/account-aggregation/byallaccounts/overview) page. "
operationId: getAccountUsingGET_1
parameters:
- name: limitToProgressAfter
in: query
description: 'Show only credentials/accounts authenticated/aggregated by the user after the specified date. If not specified will return the full list of credentials/accounts. date-time ISO 8601 JSON format yyyy-mm-ddThh:mm:ss.nnnnnn+|-hh:mm Local time relative to GMT. For example: 2019-08-22T15:16:33.045-04:00 '
allowEmptyValue: false
schema:
type: string
format: date-time
- name: page
in: query
description: Page number
schema:
type: integer
format: int32
default: 0
- name: scope
in: query
description: Scope of activity for the authenticated user. Values can be `session`, to include only session-specific information, or `global` to also include information from other sessions for this user. Default is `session` for session-based users and `global` for users authenticated by Morningstar Authentication.
allowEmptyValue: false
schema:
type: string
default: session or global
- name: size
in: query
description: Number of records per page
schema:
type: integer
format: int32
default: 25
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/Page«Credential-Account Pair,DefaultSummaryDto»'
'400':
description: Bad Request
'401':
description: Not Authorized
'500':
description: Internal Server Error
deprecated: false
/credentials/{id}:
delete:
tags:
- Credentials
summary: Delete a credential and all associated accounts from the system
description: 'Delete the credentials specified by the `id` parameter. All accounts associated with the credentials are also deleted from the system. '
operationId: deleteUsingDELETE_1
parameters:
- name: id
in: path
description: ID of the credential to delete
required: true
schema:
type: integer
format: int64
responses:
'204':
description: No Content
'401':
description: Not Authorized
'403':
description: Forbidden
'404':
description: Not Found
'500':
description: Internal Server Error
deprecated: false
components:
schemas:
DefaultSummaryDto:
title: DefaultSummaryDto
type: object
ActivitySummary:
title: ActivitySummary
type: object
properties:
activityInProgress:
type: boolean
description: If scope=`session` (or not set), then true indicates aggregation or authentication is in-progress for at least one credential in the session. If scope=`global`, then true indicates aggregation or authentication is in-progress for at least one credential in the session or authentication or discover/add/aggregate is in progress for at least one credential outside the current session. true, then aggregation is in-progress for atleast one credential
example: false
Page«Credential-Account Pair,DefaultSummaryDto»:
title: Page«Credential-Account Pair,DefaultSummaryDto»
type: object
properties:
activitySummary:
$ref: '#/components/schemas/ActivitySummary'
data:
type: array
items:
$ref: '#/components/schemas/Credential-Account Pair'
isFirst:
type: boolean
description: True if and only if this is the first page of data in the result set
example: true
isLast:
type: boolean
description: True if and only if this is the last page of data in the result set
example: true
pageNumber:
type: integer
description: Page number of this page
format: int32
example: 0
pageSize:
type: integer
description: Number of records per page
format: int32
example: 25
summary:
$ref: '#/components/schemas/DefaultSummaryDto'
totalElements:
type: integer
description: Total number of elements in result set
format: int64
example: 1
totalPages:
type: integer
description: Total number of pages in result set
format: int32
example: 1
description: A page of data records
CurrencyValue:
title: CurrencyValue
type: object
properties:
amount:
type: number
readOnly: true
example: 2078.34
currencyCode:
type: string
description: ISO 4217 currency code
readOnly: true
example: USD
Account:
title: Account
required:
- id
type: object
properties:
accountNumber:
type: string
description: The account number at this financial institution
example: ABC123456789
accountNumber2:
type: string
description: The optional account number at this financial institution
example: XYZ123456
accountType:
type: string
example: CREDITCARD
aggregationStatusErrorCode:
type: integer
description: Error code from latest aggregation attempt. This field can be ignored. Instead, refer to unifiedStatusInfoType
format: int64
example: 1005
id:
type: integer
description: An account identifier assigned by the service
format: int64
example: 11223344
lastUpdated:
type: string
description: Date and time stamp of last update
format: date-time
marketValue:
$ref: '#/components/schemas/CurrencyValue'
name:
type: string
description: Name of the account
example: BofA Checking Account
FinancialInstitution:
title: FinancialInstitution
required:
- id
- supportsAccountDiscovery
- supportsOauth
- supportsTestCredential
- userLoginURL
type: object
properties:
accountNumber2Term:
type: string
description: Term used for the optional account number at this financial institution
example: Other Account Number
accountNumberTerm:
type: string
description: Term used for the account number at this financial institution
example: Plan Number
icon:
type: string
description: The path to the icon for the financial institution. If the financial institution is requested (not supported) it is the path to a default icon.
example: https://www.byallaccounts.net/WebPortfolio/vendorResources/Default/assets/fi/icons/icon.svg
id:
type: integer
description: ID of the financial institution
format: int64
example: 254367
login2Term:
type: string
description: Term used for the optional second login at this financial institution
example: Other Login
loginTerm:
type: string
description: Term used for the login at this financial institution
example: Login
name:
type: string
description: Name of the financial institution
example: Bank of America - Banking
pw2Term:
type: string
description: Term used for the optional second password at this financial institution
example: Other Password
pwTerm:
type: string
description: Term used for the password at this financial institution
example: Password
supportsAccountDiscovery:
type: boolean
description: Indicates whether the financial institution supports account discovery
example: true
supportsOauth:
type: boolean
description: Indicates whether the financial institution supports OAuth flag
example: true
supportsTestCredential:
type: boolean
description: Indicates whether the financial institution supports test credential (testing authentication)
example: true
userLoginURL:
type: string
description: User login URL of the financial institution
example: https://chaseonline.chase.com/Logon.aspx?LOB=COLLogin
websiteURL:
type: string
description: Website URL of the financial institution
example: https://chaseonline.chase.com/Logon.aspx?LOB=COLLogin
Credential-Account Pair:
title: Credential-Account Pair
required:
- alarm
- credentialComplete
- id
type: object
properties:
account:
$ref: '#/components/schemas/Account'
activityInProgressStatus:
type: string
description: 'Status of authentication or aggregation. Values are either "In Progress" or "Complete". '
example: In Progress
alarm:
type: boolean
description: If true, credential requires attention from user. This field can be ignored. Instead, refer to unifiedStatusInfoType.
example: false
authenticationStatusErrorCode:
type: integer
description: Error code from the latest authentication attempt. Can be ignored. Instead, refer to unifiedStatusInfoType
format: int64
example: 1006
credentialComplete:
type: boolean
description: Indicates whether the credential contains sufficient information to perform authentication. This field can be ignored. Instead, refer to unifiedStatusInfoType
example: true
financialInstitution:
$ref: '#/components/schemas/FinancialInstitution'
id:
type: integer
description: ID of the Account Credential
format: int64
example: 778899
unifiedStatusInfoMsg:
type: string
description: Status information from the latest the combination of the latest authentication and aggregation attempt
example: Cannot connect. Missing Login or Password.
unifiedStatusInfoType:
type: string
description: Type of status information from the combination of the latest authentication and aggregation attempt
example: cannotConnectMissingLoginPW
unifiedStatusInfoShortMsg:
type: string
description: Deprecated. Status information from the latest authentication attempt (simplified)
example: Cannot connect. Missing Login or Password.
unifiedStatusInfoShortType:
type: string
description: Deprecated. Type of status information from the latest authentication attempt (simplified)
example: cannotConnectMissingLoginPW
description: Either an account and its related credential or a credential that has no accounts associated with it.
securitySchemes:
BasicAuth:
type: http
scheme: basic