openapi: 3.2.0 info: title: Envestnet Provider Accounts API version: 1.1.0 contact: email: developer@yodlee.com license: name: Yodlee Developer License url: https://developer.yodlee.com/terms/condition#_Services_1 termsOfService: https://developer.yodlee.com/terms/condition description: 'Operations tagged ProviderAccounts across 2 of this provider''s published API definitions: envestnet-account-aggregation-openapi-original.yml, envestnet-verification-openapi-original.yml. Each path carries the servers of the definition it was published in.' servers: - url: / tags: - name: Provider Accounts description: Provider Accounts API paths: /providerAccounts: get: tags: - Provider Accounts summary: Envestnet Get Provider Accounts description: 'The get provider accounts service is used to return all the provider accounts added by the user. This includes the failed and successfully added provider accounts.' operationId: getAllProviderAccounts parameters: - name: include in: query description: include schema: type: string - name: providerIds in: query description: Comma separated providerIds. allowEmptyValue: false schema: type: string responses: 200: description: OK content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/ProviderAccountResponse' 401: description: Unauthorized content: {} 404: description: Not Found content: {} deprecated: false put: tags: - Provider Accounts summary: Envestnet Update Account description: 'This API Reference guide is intended for FastLink 4 Users. For FastLink 3 Users, there are additional integration notes related to this endpoint here. The update account API is used to: Retrieve the latest information of all the eligible accounts that belong to the user. Check the status of the providerAccount before invoking this API. Do not call this API to trigger any action on a providerAccount when an action is already in progress for the providerAccount. If the customer has subscribed to the REFRESH event notification and invoked this API, relevant notifications will be sent to the customer. Check all the dataset additional statuses returned in the response because the provider account status is drawn from the dataset additional statuses. Updating preferences using this API will trigger refreshes. The content type has to be passed as application/json for the body parameter. ----------------------------------------------------------------------------------------------------------------------------------------- Update All Eligible Accounts - Notes: This API will trigger a refresh for all the eligible provider accounts(both OB and credential-based accounts). This API will not refresh closed, inactive, or UAR accounts, or accounts with refreshes in-progress or recently refreshed non-OB accounts. No parameters should be passed to this API to trigger this action. Do not call this API often. Our recommendation is to call this only at the time the user logs in to your app because it can hamper other API calls performance. The response only contains information for accounts that were refreshed. If no accounts are eligible for refresh, no response is returned.' operationId: editCredentialsOrRefreshProviderAccount parameters: - name: providerAccountIds in: query description: comma separated providerAccountIds required: true allowEmptyValue: false schema: type: string requestBody: description: loginForm or field entity content: application/json: schema: $ref: '#/components/schemas/ProviderAccountRequest' required: false responses: 200: description: OK content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/UpdatedProviderAccountResponse' 400: description: 'Y805 : Multiple providerAccountId not supported for updating credentials
Y800 : Invalid value for credentialsParam
Y400 : id and value in credentialsParam are mandatory
Y806 : Invalid input
Y823 : Credentials are not applicable for real estate aggregated / manual accounts
Y868 : No action is allowed, as the data is being migrated to the Open Banking provider
' content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/YodleeError' 401: description: Unauthorized content: {} 404: description: Not Found content: {} deprecated: false servers: - url: / /providerAccounts/refresh: put: tags: - Provider Accounts summary: Envestnet Refresh Provider Account description: 'This api service will allow you to refresh the Non-MFA provider accounts against a configName, i.e refresh will respect the configurations of the configName while refreshing the account. Note: this service will only work with FastLink 4 users.' operationId: refreshProviderAccount requestBody: description: refreshRequest content: application/json: schema: $ref: '#/components/schemas/ProviderAccountRefreshRequest' required: true responses: 201: description: CREATED content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/RefreshProviderAccountResponse' 400: description: 'Y800 : Invalid value for configName
Y803 : configName required
Y812 : Required field/value providerAccountId missing in the request
Y800 : Invalid value for providerAccountId
Y825 : Update not allowed. Reason: providerAccountId {id} REFRESHED_RECENTLY
' content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/YodleeError' 401: description: Unauthorized content: {} 404: description: Not Found content: {} deprecated: false servers: - url: / /providerAccounts/{providerAccountId}/preferences: put: tags: - Provider Accounts summary: Envestnet Update Preferences description: 'This endpoint is used to update preferences like data extracts and auto refreshes without triggering refresh for the providerAccount. Setting isDataExtractsEnabled to false will not trigger data extracts notification and dataExtracts/events will not reflect any data change that is happening for the providerAccount. Modified data will not be provided in the dataExtracts/userData endpoint. Setting isAutoRefreshEnabled to false will not trigger auto refreshes for the provider account.' operationId: updatePreferences parameters: - name: providerAccountId in: path description: providerAccountId required: true schema: type: integer format: int64 requestBody: description: preferences content: application/json: schema: $ref: '#/components/schemas/ProviderAccountPreferencesRequest' required: true responses: 204: description: OK content: {} 400: description: 'Y800 : Invalid value for preferences
Y800 : Invalid value for preferences.isDataExtractsEnabled
Y800 : Invalid value for preferences.isAutoRefreshEnabled
Y807 : Resource not found
Y830 : Data extracts feature has to be enabled to set preferences.isDataExtractsEnabled as true
Y830 : Auto refresh feature has to be enabled to set preferences.isAutoRefreshEnabled as true
Y868 : No action is allowed, as the data is being migrated to the Open Banking provider
' content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/YodleeError' 401: description: Unauthorized content: {} 404: description: Not Found content: {} deprecated: false servers: - url: / /providerAccounts/{providerAccountId}: get: tags: - Provider Accounts summary: Envestnet Get Provider Account Details description: 'The get provider account details service is used to learn the status of adding accounts and updating accounts. This service has to be called continuously to know the progress level of the triggered process. This service also provides the MFA information requested by the provider site. When include = credentials, questions is passed as input, the service returns the credentials (non-password values) and questions stored in the Yodlee system for that provider account. Note: The password and answer fields are not returned in the response.' operationId: getProviderAccount parameters: - name: include in: query description: include credentials,questions allowEmptyValue: false schema: type: string - name: providerAccountId in: path description: providerAccountId required: true schema: type: integer format: int64 - name: requestId in: query description: The unique identifier for the request that returns contextual data allowEmptyValue: false schema: type: string responses: 200: description: OK content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/ProviderAccountDetailResponse' 400: description: 'Y800 : Invalid value for providerAccountId
Y816 : questions can only be requested for questionAndAnswer Supported Sites' content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/YodleeError' 401: description: Unauthorized content: {} 404: description: Not Found content: {} deprecated: false delete: tags: - Provider Accounts summary: Envestnet Delete Provider Account description: 'The delete provider account service is used to delete a provider account from the Yodlee system. This service also deletes the accounts that are created in the Yodlee system for that provider account. This service does not return a response. The HTTP response code is 204 (Success with no content).' operationId: deleteProviderAccount parameters: - name: providerAccountId in: path description: providerAccountId required: true schema: type: integer format: int64 responses: 200: description: OK content: {} 400: description: 'Y800 : Invalid value for providerAccountId
Y868 : No action is allowed, as the data is being migrated to the Open Banking provider
' content: application/json;charset=UTF-8: schema: $ref: '#/components/schemas/YodleeError' 401: description: Unauthorized content: {} 404: description: Not Found content: {} deprecated: false servers: - url: / components: schemas: Field: title: Field type: object properties: image: type: string description: Image displayed at the endsite.

Endpoints: prefix: type: string description: The prefix string that has to be displayed before the field value.

Endpoints: readOnly: true minLength: type: integer description: The minimum length of the login form field.

Endpoints: format: int64 readOnly: true valueEditable: type: string description: Indicates whether the field is editable or not.

Endpoints: readOnly: true isOptional: type: boolean description: Indicates if a field is an optional field or a mandatory field.

Endpoints: readOnly: true suffix: type: string description: The suffix string that has to be displayed next to the field value.

Endpoints: readOnly: true type: type: string description: This indicates the display type of the field. For example, text box, image, etc.

Endpoints:Applicable Values
readOnly: true enum: - text - password - options - checkbox - radio - image - option isValueProvided: type: boolean description: Indicates that the answer to the security question already exists in the Yodlee system.Persuading the user to provide the answer to the security question again during the edit-credential flow can be avoided.


Endpoints: readOnly: true name: type: string description: Name of the field.

Endpoints: readOnly: true id: maxLength: 2147483647 minLength: 1 type: string description: Identifier for the field.

Endpoints: value: type: string description: Value expected from the user for the field. This will be blank and is expected to be filled and sent back when submitting the login or MFA information.

Endpoints: maxLength: type: integer description: The maximum length of the login form field.

Endpoints: format: int64 readOnly: true option: type: array description: Provides the different values that are available for the user to choose. This field is applicable for drop-down or radio field types.

Endpoints: readOnly: true items: $ref: '#/components/schemas/Option' LoginForm: title: LoginForm type: object properties: mfaInfoTitle: type: string description: The title for the MFA information demanded from the user.This is the title displayed in the provider site.This field is applicable for MFA form types only.

Endpoints: readOnly: true help: type: string description: The help that can be displayed to the customer in the login form.

Endpoints: readOnly: true forgetPasswordURL: type: string description: The forget password URL of the provider site.

Endpoints: formType: type: string description: The type of the forms for which the user information is required.

Endpoints:Applicable Values
enum: - login - questionAndAnswer - token - image mfaInfoText: type: string description: The text displayed in the provider site while requesting the user's MFA information. This field is applicable for MFA form types only.

Endpoints: readOnly: true loginHelp: type: string description: The help that can be displayed to the customer in the login form.

Endpoints: readOnly: true mfaTimeout: type: integer description: The amount of time before which the user is expected to provide MFA information. This field is applicable for MFA form types only. This would be an useful information that could be displayed to the users.

Endpoints: format: int64 readOnly: true id: type: integer description: The identifier of the login form.

Endpoints: format: int64 row: type: array description: This indicates one row in the form. The row will have one label. But it may have single or multiple fields.

Endpoints: items: $ref: '#/components/schemas/Row' ProviderAccountDetail: title: ProviderAccountDetail required: - consentId type: object properties: preferences: $ref: '#/components/schemas/ProviderAccountPreferences' oauthMigrationStatus: type: string description: Indicates the migration status of the provider account from screen-scraping provider to the Open Banking provider.

Endpoints: readOnly: true enum: - IN_PROGRESS - TO_BE_MIGRATED - COMPLETED - MIGRATED isManual: type: boolean description: Indicates whether account is a manual or aggregated provider account.

Endpoints: readOnly: true lastUpdated: type: string description: 'Indicate when the providerAccount is last updated successfully.

Account Type: Aggregated
Endpoints:' readOnly: true consentId: type: integer description: Consent Id generated through POST Consent.

Endpoints: format: int64 loginForm: type: array description: This entity gets returned in the response for only MFA based provider accounts during the add/update account polling process. This indicates that the MFA information is expected from the user to complete the process. This represents the structure of MFA form that is displayed to the user in the provider site.

Endpoints: readOnly: true items: $ref: '#/components/schemas/LoginForm' createdDate: type: string description: The date on when the provider account is created in the system.

Endpoints: readOnly: true aggregationSource: type: string description: The source through which the providerAccount is added in the system.

Endpoints:Applicable Values
readOnly: true enum: - SYSTEM - USER providerId: type: integer description: Unique identifier for the provider resource. This denotes the provider for which the provider account id is generated by the user.

Endpoints: format: int64 readOnly: true requestId: type: string description: Unique id generated to indicate the request.

Endpoints: readOnly: true id: type: integer description: Unique identifier for the provider account resource. This is created during account addition.

Endpoints: format: int64 readOnly: true authType: type: string description: The authentication type enabled at the provider site.

Endpoints:Applicable Values
readOnly: true enum: - OAUTH - CREDENTIALS - MFA_CREDENTIALS dataset: type: array description: Logical grouping of dataset attributes into datasets such as Basic Aggregation Data, Account Profile and Documents.

Endpoints: readOnly: true items: $ref: '#/components/schemas/AccountDataset' status: type: string description: The status of last update attempted for the account.

Endpoints:Applicable Values
readOnly: true enum: - LOGIN_IN_PROGRESS - USER_INPUT_REQUIRED - IN_PROGRESS - PARTIAL_SUCCESS - SUCCESS - FAILED - MIGRATION_IN_PROGRESS - DATA_RETRIEVAL_FAILED Attribute: title: Attribute type: object properties: container: type: array description: Containers for which the attributes are supported.

Endpoints: items: type: string enum: - bank - creditCard - investment - insurance - loan - reward - bill - realEstate - otherAssets - otherLiabilities fromDate: type: string description: Applicable only to EBILLS and STATEMENTS attributes of DOCUMENT dataset.

Endpoints: readOnly: true toFinYear: type: string description: Applicable only to TAX attribute of DOCUMENT dataset.

Endpoints: readOnly: true fromFinYear: type: string description: Applicable only to TAX attribute of DOCUMENT dataset.

Endpoints: readOnly: true containerAttributes: $ref: '#/components/schemas/ContainerAttributes' toDate: type: string description: Applicable only to EBILLS and STATEMENTS attributes of DOCUMENT dataset.

Endpoints: readOnly: true name: type: string description: Attributes that are supported for a dataset.

Endpoints: enum: - BASIC_ACCOUNT_INFO - TRANSACTIONS - STATEMENTS - HOLDINGS - ACCOUNT_DETAILS - TAX - EBILLS - FULL_ACCT_NUMBER - BANK_TRANSFER_CODE - HOLDER_NAME - HOLDER_DETAILS - PAYMENT_PROFILE - PAYMENT_DETAILS - INTEREST_DETAILS - COVERAGE UpdatedProviderAccount: title: UpdatedProviderAccount type: object properties: lastUpdated: type: string description: 'Indicate when the providerAccount is last updated successfully.

Account Type: Aggregated
Endpoints:' readOnly: true loginForm: type: array description: This entity gets returned in the response for only MFA based provider accounts during the add/update account polling process. This indicates that the MFA information is expected from the user to complete the process. This represents the structure of MFA form that is displayed to the user in the provider site.

Endpoints: readOnly: true items: $ref: '#/components/schemas/LoginForm' createdDate: type: string description: The date on when the provider account is created in the system.

Endpoints: readOnly: true aggregationSource: type: string description: The source through which the providerAccount is added in the system.

Endpoints:Applicable Values
readOnly: true enum: - SYSTEM - USER oauthMigrationStatus: type: string description: Indicates the migration status of the provider account from screen-scraping provider to the Open Banking provider.

Endpoints: readOnly: true enum: - IN_PROGRESS - TO_BE_MIGRATED - COMPLETED - MIGRATED providerId: type: integer description: Unique identifier for the provider resource. This denotes the provider for which the provider account id is generated by the user.

Endpoints: format: int64 readOnly: true requestId: type: string description: Unique id generated to indicate the request.

Endpoints: readOnly: true isManual: type: boolean description: Indicates whether account is a manual or aggregated provider account.

Endpoints: readOnly: true id: type: integer description: Unique identifier for the provider account resource. This is created during account addition.

Endpoints: format: int64 readOnly: true authType: type: string description: The authentication type enabled at the provider site.

Endpoints:Applicable Values
readOnly: true enum: - OAUTH - CREDENTIALS - MFA_CREDENTIALS dataset: type: array description: Logical grouping of dataset attributes into datasets such as Basic Aggregation Data, Account Profile and Documents.

Endpoints: readOnly: true items: $ref: '#/components/schemas/AccountDataset' status: type: string description: The status of last update attempted for the account.

Endpoints:Applicable Values
readOnly: true enum: - LOGIN_IN_PROGRESS - USER_INPUT_REQUIRED - IN_PROGRESS - PARTIAL_SUCCESS - SUCCESS - FAILED - MIGRATION_IN_PROGRESS - DATA_RETRIEVAL_FAILED ProviderAccountPreferences: title: ProviderAccountPreferences type: object properties: isDataExtractsEnabled: type: boolean description: Indicates if the updates to the provider account should be part of the data extracts event notification or the data extract data retrieval service.

Endpoints: linkedProviderAccountId: type: integer description: LinkedproviderAccountd is a providerAccountId linked by the user to the primary provider account.
LinkedProviderAccountId and the providerAccountId belongs to the same institution.

Endpoints: format: int64 isAutoRefreshEnabled: type: boolean description: Indicates if auto-refreshes have to be triggered for the provider account.

Endpoints: ProviderAccountPreferencesRequest: title: ProviderAccountPreferencesRequest type: object properties: preferences: $ref: '#/components/schemas/ProviderAccountPreferences' ProviderAccountRequest: title: ProviderAccountRequest required: - field type: object properties: consentId: type: integer description: Consent Id generated for the request through POST Consent.

Endpoints: format: int64 preferences: $ref: '#/components/schemas/ProviderAccountPreferences' aggregationSource: type: string enum: - SYSTEM - USER field: type: array items: $ref: '#/components/schemas/Field' datasetName: type: array items: type: string enum: - BASIC_AGG_DATA - ADVANCE_AGG_DATA - ACCT_PROFILE - DOCUMENT dataset: type: array items: $ref: '#/components/schemas/ProvidersDataset' AccountDataset: title: AccountDataset type: object properties: lastUpdated: type: string description: 'Indicate when the dataset is last updated successfully for the given provider account.

Account Type: Aggregated
Endpoints:' readOnly: true updateEligibility: type: string description: 'Indicate whether the dataset is eligible for update or not.

Account Type: Aggregated
Endpoints:Applicable Values
' readOnly: true enum: - ALLOW_UPDATE - ALLOW_UPDATE_WITH_CREDENTIALS - DISALLOW_UPDATE additionalStatus: type: string description: 'The status of last update attempted for the dataset.

Account Type: Aggregated
Endpoints:Applicable Values
' readOnly: true enum: - LOGIN_IN_PROGRESS - DATA_RETRIEVAL_IN_PROGRESS - ACCT_SUMMARY_RECEIVED - AVAILABLE_DATA_RETRIEVED - PARTIAL_DATA_RETRIEVED - DATA_RETRIEVAL_FAILED - DATA_NOT_AVAILABLE - ACCOUNT_LOCKED - ADDL_AUTHENTICATION_REQUIRED - BETA_SITE_DEV_IN_PROGRESS - CREDENTIALS_UPDATE_NEEDED - INCORRECT_CREDENTIALS - PROPERTY_VALUE_NOT_AVAILABLE - INVALID_ADDL_INFO_PROVIDED - REQUEST_TIME_OUT - SITE_BLOCKING_ERROR - UNEXPECTED_SITE_ERROR - SITE_NOT_SUPPORTED - SITE_UNAVAILABLE - TECH_ERROR - USER_ACTION_NEEDED_AT_SITE - SITE_SESSION_INVALIDATED - NEW_AUTHENTICATION_REQUIRED - DATASET_NOT_SUPPORTED - ENROLLMENT_REQUIRED_FOR_DATASET - CONSENT_REQUIRED - CONSENT_EXPIRED - CONSENT_REVOKED - INCORRECT_OAUTH_TOKEN - MIGRATION_IN_PROGRESS nextUpdateScheduled: type: string description: 'Indicates when the next attempt to update the dataset is scheduled.

Account Type: Aggregated
Endpoints:' readOnly: true name: type: string description: 'The name of the dataset requested from the provider site

Account Type: Manual
Endpoints:Applicable Values
' enum: - BASIC_AGG_DATA - ADVANCE_AGG_DATA - ACCT_PROFILE - DOCUMENT lastUpdateAttempt: type: string description: 'Indicate when the last attempt was performed to update the dataset for the given provider account

Account Type: Aggregated
Endpoints:' readOnly: true ContainerAttributes: title: ContainerAttributes type: object properties: BANK: $ref: '#/components/schemas/TransactionDays' LOAN: $ref: '#/components/schemas/TransactionDays' CREDITCARD: $ref: '#/components/schemas/TransactionDays' INVESTMENT: $ref: '#/components/schemas/TransactionDays' INSURANCE: $ref: '#/components/schemas/TransactionDays' Row: title: Row type: object properties: fieldRowChoice: type: string description: 'Fields that belong to a particular choice are collected together using this field.
Recommendations: All the field row choices label to be grouped and displayed as options to the customer. On choosing a particular choice field, we recommend displaying the fields relevant to them. First field choice could be selected by default.

Endpoints:' field: type: array description: Details of fields that belong to the row.

Endpoints: items: $ref: '#/components/schemas/Field' form: type: string description: Form denotes the set of the fields that are related.

Endpoints: id: type: string description: Unique identifier of the row.

Endpoints: label: type: string description: The label text displayed for a row in the form.

Endpoints: ProviderAccountRefreshRequest: title: ProviderAccountRefreshRequest required: - configName - providerAccountIds type: object properties: configName: type: string description: The name of configuration created at the time onboarding or configuration creation. providerAccountIds: type: array description: Comma separated providerAccountIds. items: type: integer format: int64 ProviderAccount: title: ProviderAccount type: object properties: preferences: $ref: '#/components/schemas/ProviderAccountPreferences' oauthMigrationStatus: type: string description: Indicates the migration status of the provider account from screen-scraping provider to the Open Banking provider.

Endpoints: readOnly: true enum: - IN_PROGRESS - TO_BE_MIGRATED - COMPLETED - MIGRATED isManual: type: boolean description: Indicates whether account is a manual or aggregated provider account.

Endpoints: readOnly: true isRealTimeMFA: type: boolean description: Attribute to specify whether the user has to input(credentials/MFA) for refreshing an account

Endpoints: