openapi: 3.0.1
info:
title: Envestnet Aggregation APIs Account Token Transactions API
description: 'This file describes the Yodlee Aggregation product APIs using the swagger notation that you can use to build your financial application. You can generate the client SDK in Python, JavaScript, PHP, or any other languages according to your development needs. For more details about the APIs, refer to <a href="https://developer.envestnet.com/resources/yodlee/yodlee-api-overview/docs">Yodlee API v1.1 - Overview</a>.<br><br>You will have to set the header before making the API call. The following headers apply to all the APIs:<ul><li>Authorization: This header holds the access token</li> <li> Api-Version: 1.1</li></ul><b>Note</b>: If there are any API-specific headers, they are mentioned explicitly in the respective API''s description.'
termsOfService: https://developer.yodlee.com/terms/condition
contact:
email: developer@yodlee.com
license:
name: Yodlee Developer License
url: https://developer.yodlee.com/terms/condition#_Services_1
version: 1.1.0
servers:
- url: /
tags:
- name: Transactions
description: Transactions API
paths:
/transactions:
get:
tags:
- Transactions
summary: Envestnet Get Transactions
description: 'The Transaction service is used to get a list of transactions for a user.<br>By default, this service returns the last 30 days of transactions from today''s date.<br>API will only return up to 2 years of transaction history. If the difference between fromDate and toDate is more than 2 years, API will return only last 2 years from the toDate.<br>The keyword parameter performs a contains search on the original, consumer, and simple description attributes, replace the special characters #, &, and + with percent-encoding values %23, %26, and %2B respectively. Eg: for -Debit# , pass the input as -Debit%23.<br>Values for categoryId parameter can be fetched from get transaction category list service.<br> The categoryId is used to filter transactions based on system-defined category as well as user-defined category.<br>User-defined categoryIds should be provided in the filter with the prefix ''''U''''. E.g. U10002<br>The skip and top parameters are used for pagination. In the skip and top parameters pass the number of records to be skipped and retrieved, respectively. The response header provides the links to retrieve the next and previous set of transactions.<br>Double quotes in the merchant name will be prefixed by backslashes (\) in the response, e.g. Toys "R" Us. <br>sourceId is a unique ID that the provider site has assigned to the transaction. The source ID is only available for the pre-populated accounts. Pre-populated accounts are the accounts that the FI customers shares with Yodlee, so that the user does not have to add or aggregate those accounts.<br><br><b>Note</b><ul><li><a href="https://developer.envestnet.com/resources/yodlee/transaction-data-enrichment/docs/overview">Transaction Data Enrichment</a> is made available for bank and card accounts. The address field in the response is available only when the Transaction Data Enrichment key is turned ON.</li><li>The pagination feature is available by default. If no values are passed in the skip and top parameters, the API will only return the first 500 transactions.</li><li>This service supports the localization feature and accepts locale as a header parameter.</li></ul>'
operationId: getTransactions
parameters:
- name: accountId
in: query
description: Comma separated accountIds
allowEmptyValue: false
schema:
type: string
- name: baseType
in: query
description: DEBIT/CREDIT
allowEmptyValue: false
schema:
type: string
- name: categoryId
in: query
description: Comma separated categoryIds
allowEmptyValue: false
schema:
type: string
- name: categoryType
in: query
description: Transaction Category Type(LOAN, UNCATEGORIZE, INCOME, TRANSFER, EXPENSE or DEFERRED_COMPENSATION)
allowEmptyValue: false
schema:
type: string
- name: container
in: query
description: bank/creditCard/investment/insurance/loan
allowEmptyValue: false
schema:
type: string
- name: convertToCurrency
in: query
description: On-demand currency conversion parameter
allowEmptyValue: false
schema:
type: string
- name: detailCategoryId
in: query
description: Comma separated detailCategoryIds
allowEmptyValue: false
schema:
type: string
- name: fromDate
in: query
description: Transaction from date(YYYY-MM-DD)
allowEmptyValue: false
schema:
type: string
- name: highLevelCategoryId
in: query
description: Comma separated highLevelCategoryIds
allowEmptyValue: false
schema:
type: string
- name: keyword
in: query
description: Transaction search text
allowEmptyValue: false
schema:
type: string
- name: skip
in: query
description: skip (Min 0)
allowEmptyValue: false
schema:
type: integer
format: int32
- name: toDate
in: query
description: Transaction end date (YYYY-MM-DD)
allowEmptyValue: false
schema:
type: string
- name: top
in: query
description: top (Max 500)
allowEmptyValue: false
schema:
type: integer
format: int32
- name: type
in: query
description: Transaction Type(SELL,SWEEP, etc.) for bank/creditCard/investment
allowEmptyValue: false
schema:
type: string
responses:
200:
description: OK
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/TransactionResponse'
400:
description: 'Y800 : Invalid value for baseType<br>Y800 : Invalid value for fromDate<br>Y800 : Invalid value for category<br>Y800 : Invalid value for toDate<br>Y800 : Invalid value for container<br>Y809 : Invalid date range<br>Y804 : Permitted values of top between 1 - 500<br>Y805 : Multiple containers not supported<br>Y800 : Invalid value for transaction type<br>Y824 : The maximum number of accountIds permitted is 100<br>Y824 : The maximum number of categoryIds permitted is 100<br>Y824 : The maximum number of highLevelCategoryIds permitted is 100<br>Y848 : detailCategoryId cannot be provided as input, as the detailedCategory feature is not enabled<br>Y823 : detailCategoryId is not for applicable containers other than bank and card<br>Y824 : The maximum number of detailCategoryIds permitted is 100<br>Y800 : Invalid value for detailCategoryId<br>Y800 : Invalid value for convertToCurrency<br>Y820 : The currency value is not supported for convertToCurrency<br>'
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/YodleeError'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
/transactions/count:
get:
tags:
- Transactions
summary: Envestnet Get Transactions Count
description: The count service provides the total number of transactions for a specific user depending on the input parameters passed.<br>If you are implementing pagination for transactions, call this endpoint before calling GET /transactions to know the number of transactions that are returned for the input parameters passed.<br>The functionality of the input parameters remains the same as that of the GET /transactions endpoint.<br>
operationId: getTransactionsCount
parameters:
- name: accountId
in: query
description: "Comma separated accountIds\t"
allowEmptyValue: false
schema:
type: string
- name: baseType
in: query
description: DEBIT/CREDIT
allowEmptyValue: false
schema:
type: string
- name: categoryId
in: query
description: Comma separated categoryIds
allowEmptyValue: false
schema:
type: string
- name: categoryType
in: query
description: Transaction Category Type(LOAN, UNCATEGORIZE, INCOME, TRANSFER, EXPENSE or DEFERRED_COMPENSATION)
allowEmptyValue: false
schema:
type: string
- name: container
in: query
description: bank/creditCard/investment/insurance/loan
allowEmptyValue: false
schema:
type: string
- name: detailCategoryId
in: query
description: Comma separated detailCategoryIds
allowEmptyValue: false
schema:
type: string
- name: fromDate
in: query
description: Transaction from date(YYYY-MM-DD)
allowEmptyValue: false
schema:
type: string
- name: highLevelCategoryId
in: query
description: Comma separated highLevelCategoryIds
allowEmptyValue: false
schema:
type: string
- name: keyword
in: query
description: "Transaction search text\t"
allowEmptyValue: false
schema:
type: string
- name: toDate
in: query
description: Transaction end date (YYYY-MM-DD)
allowEmptyValue: false
schema:
type: string
- name: type
in: query
description: Transaction Type(SELL,SWEEP, etc.)
allowEmptyValue: false
schema:
type: string
responses:
200:
description: OK
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/TransactionCountResponse'
400:
description: 'Y800 : Invalid value for detailCategoryId<br>Y848 : detailCategoryId cannot be provided as input, as the detailedCategory feature is not enabled<br>Y823 : detailCategoryId is not applicable for containers other than bank and card<br>Y824 : The maximum number of detailCategoryIds permitted is 100<br>'
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/YodleeError'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
/transactions/categories/txnRules:
get:
tags:
- Transactions
summary: Envestnet Get Transaction Categorization Rules
description: The get transaction categorization rule service is used to get all the categorization rules.<br>
operationId: getTransactionCategorizationRules
responses:
200:
description: OK
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/TransactionCategorizationRuleResponse'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
/transactions/categories/{categoryId}:
delete:
tags:
- Transactions
summary: Envestnet Delete Category
description: The delete transaction categories service is used to delete the given user-defined category.<br>The HTTP response code is 204 (Success without content).<br>
operationId: deleteTransactionCategory
parameters:
- name: categoryId
in: path
description: categoryId
required: true
schema:
type: integer
format: int64
responses:
204:
description: Deleted Successfully
content: {}
400:
description: 'Y800 : Invalid value for categoryId'
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/YodleeError'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
/transactions/categories/rules/{ruleId}:
put:
tags:
- Transactions
summary: Envestnet Update Transaction Categorization Rule
description: The update transaction categorization rule service is used to update a categorization rule for both system-defined category as well as user-defined category.<br>ruleParam JSON input should be as explained in the create transaction categorization rule service.<br>The HTTP response code is 204 (Success without content).<br>
operationId: updateTransactionCategorizationRule
parameters:
- name: ruleId
in: path
description: ruleId
required: true
schema:
type: integer
format: int64
requestBody:
description: transactionCategoriesRuleRequest
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionCategorizationRuleRequest'
required: true
responses:
204:
description: Updated Successfully
content: {}
400:
description: 'Y800 : Invalid value for ruleId<br>Y806 : Invalid input'
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/YodleeError'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
post:
tags:
- Transactions
summary: Envestnet Run Transaction Categorization Rule
description: The run transaction categorization rule service is used to run a rule on transactions, to categorize the transactions.<br>The HTTP response code is 204 (Success with no content).<br>
operationId: runTransactionCategorizationRule
parameters:
- name: action
in: query
required: true
schema:
type: string
default: run
enum:
- run
- name: ruleId
in: path
description: Unique id of the categorization rule
required: true
schema:
type: integer
format: int64
responses:
204:
description: Run Successfully
content: {}
400:
description: 'Y800 : Invalid value for ruleId<br>Y400 : Categorization already in progress'
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/YodleeError'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
delete:
tags:
- Transactions
summary: Envestnet Delete Transaction Categorization Rule
description: The delete transaction categorization rule service is used to delete the given user-defined transaction categorization rule for both system-defined category as well as user-defined category.<br>This will delete all the corresponding rule clauses associated with the rule.<br>The HTTP response code is 204 (Success without content).<br>
operationId: deleteTransactionCategorizationRule
parameters:
- name: ruleId
in: path
description: ruleId
required: true
schema:
type: integer
format: int64
responses:
204:
description: Deleted Successfully
content: {}
400:
description: 'Y800 : Invalid value for ruleId'
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/YodleeError'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
/transactions/categories:
get:
tags:
- Transactions
summary: Envestnet Get Transaction Category List
description: The categories service returns the list of available transaction categories.<br>High level category is returned in the response only if it is opted by the customer.<br>When invoked by passing the cobrand session or admin access token, this service returns the supported transaction categories at the cobrand level. <br>When invoked by passing the cobrand session and the user session or user access token, this service returns the transaction categories <br>along with user-defined categories.<br>Double quotes in the user-defined category name will be prefixed by backslashes (\) in the response, <br>e.g. Toys "R" Us.<br/>Source and id are the primary attributes of the category entity.<br><br><b>Note:</b><li>This service supports the localization feature and accepts locale as a header parameter.</li>
operationId: getTransactionCategories
responses:
200:
description: OK
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/TransactionCategoryResponse'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
put:
tags:
- Transactions
summary: Envestnet Update Category
description: The update transaction categories service is used to update the transaction category name<br>for a high level category, a system-defined category and a user-defined category.<br>The renamed category can be set back to the original name by passing an empty string for categoryName.<br>The categoryName can accept minimum of 1, maximum of 50 alphanumeric or special characters.<br>The HTTP response code is 204 (Success without content).<br>
operationId: updateTransactionCategory
requestBody:
description: updateCategoryRequest
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCategoryRequest'
required: true
responses:
204:
description: Updated Successfully
content: {}
400:
description: 'Y800 : Invalid value for categoryParam<br>Y800 : Invalid value for source<br>Y801 : Invalid length for categoryName. Min 1 and max 50 is required<br>Y803 : id required<br>Y811 : categoryName value already exists'
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/YodleeError'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
post:
tags:
- Transactions
summary: Envestnet Create Category
description: The create transaction categories service is used to create user-defined categories for a system-defined category.<br>The parentCategoryId is the system-defined category id.This can be retrieved using get transaction categories service.<br>The categoryName can accept minimum of 1, maximum of 50 alphanumeric or special characters.<br>The HTTP response code is 201 (Created successfully).<br>
operationId: createTransactionCategory
requestBody:
description: User Transaction Category in JSON format
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionCategoryRequest'
required: true
responses:
201:
description: Created Successfully
content: {}
400:
description: 'Y800 : Invalid value for categoryParam<br>Y800 : Invalid value for source<br>Y801 : Invalid length for categoryName. Min 1 and max 50 is required<br>Y803 : parentCategoryId required<br>Y811 : categoryName value already exists'
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/YodleeError'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
/transactions/categories/rules:
get:
tags:
- Transactions
summary: Envestnet Get Transaction Categorization Rules
description: The get transaction categorization rule service is used to get all the categorization rules.<br>
operationId: getTransactionCategorizationRulesDeprecated
responses:
200:
description: OK
content:
application/json;charset=UTF-8:
schema:
type: array
items:
$ref: '#/components/schemas/TransactionCategorizationRule'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: true
post:
tags:
- Transactions
summary: Envestnet Create or Run Transaction Categorization Rule
description: 'The Create or Run Transaction Categorization Rule endpoint is used to: <br>Create transaction categorization rules for both system and user-defined categories.<br>Run all the transaction categorization rules to categorize transactions by calling the endpoint with action=run as the query parameter. <br><br>The input body parameters to create transaction categorization rules follow:<br> categoryId - This field is mandatory and numeric<br> priority - This field is optional and numeric. Priority decides the order in which the rule gets applied on transactions.<br> ruleClause - This field is mandatory and should contain at least one rule<br> field - The value can be description or amount<br><br> If the field value is description then,<br> 1. operation - value can be stringEquals or stringContains<br> 2. value - value should be min of 3 and max of 50 characters<br><br> If the field value is amount then, <br> 1. operation - value can be numberEquals, numberLessThan, numberLessThanEquals, numberGreaterThan or numberGreaterThanEquals<br> 2. value - min value 0 and a max value of 99999999999.99 is allowed<br>The HTTP response code is 201 (Created Successfully).'
operationId: createOrRunTransactionCategorizationRules
parameters:
- name: action
in: query
description: To run rules, pass action=run. Only value run is supported
allowEmptyValue: false
schema:
type: string
- name: ruleParam
in: query
description: rules(JSON format) to categorize the transactions
allowEmptyValue: false
schema:
type: string
responses:
201:
description: Created Successfully
content: {}
204:
description: No Content
content: {}
400:
description: 'Y806 : Invalid input<br>Y400 : Rule already exists. Rule should be unique in terms of combination of description and amount'
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/YodleeError'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
/transactions/{transactionId}:
put:
tags:
- Transactions
summary: Envestnet Update Transaction
description: The update transaction service is used to update the category,consumer description, memo, isPhysical, merchantType, detailCategory for a transaction.<br>The HTTP response code is 204 (Success without content).<br>
operationId: updateTransaction
parameters:
- name: transactionId
in: path
description: transactionId
required: true
schema:
type: integer
format: int64
requestBody:
description: transactionRequest
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionRequest'
required: true
responses:
204:
description: Updated Successfully
content: {}
400:
description: 'Y812 : Required field -container missing in the transactionParam parameter input<br>Y800 : Invalid value for transactionId<br>Y800 : Invalid value for merchantType<br>Y800 : Invalid value for detailCategoryId<br>Y800 : Invalid value for categoryId<br>Y868 : No action is allowed, as the data is being migrated to the Open Banking provider<br>'
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/YodleeError'
401:
description: Unauthorized
content: {}
404:
description: Not Found
content: {}
deprecated: false
components:
schemas:
RuleClause:
title: RuleClause
type: object
properties:
field:
type: string
description: 'Field for which the clause is created.<br><br><br><b>Valid Values</b>:amount,description<b>Applicable containers</b>: creditCard, investment, insurance, loan<br>'
readOnly: true
enum:
- amount
- description
userDefinedRuleId:
type: integer
description: 'Unique identifier generated for every rule the user creates.<br><br><b>Applicable containers</b>: creditCard, investment, insurance, loan<br>'
format: int64
readOnly: true
fieldValue:
type: string
description: 'The value would be the amount value in case of amount based rule clause or the string value in case of description based rule clause.<br><br><b>Applicable containers</b>: creditCard, investment, insurance, loan<br>'
readOnly: true
operation:
type: string
description: 'Operation for which the clause is created.<br><br><b>Applicable containers</b>: creditCard, investment, insurance, loan<br>'
readOnly: true
enum:
- numberEquals
- numberLessThan
- numberLessThanEquals
- numberGreaterThan
- numberGreaterThanEquals
- stringEquals
- stringContains
ruleClauseId:
type: integer
description: 'Unique identifier generated for the rule clause.<br><br><b>Applicable containers</b>: creditCard, investment, insurance, loan<br>'
format: int64
readOnly: true
TransactionCountResponse:
title: TransactionCountResponse
type: object
properties:
transaction:
$ref: '#/components/schemas/TransactionCount'
TransactionCategorizationRule:
title: TransactionCategorizationRule
type: object
properties:
ruleClauses:
type: array
description: 'Details of rules. <br><br><b>Applicable containers</b>: creditCard, investment, insurance, loan<br>'
readOnly: true
items:
$ref: '#/components/schemas/RuleClause'
userDefinedRuleId:
type: integer
description: 'Unique identifier generated for every rule the user creates.<br><br><b>Applicable containers</b>: creditCard, investment, insurance, loan<br>'
format: int64
readOnly: true
categoryLevelId:
type: integer
description: 'The level of the category for which the rule is created.<br><br><b>Applicable containers</b>: creditCard, insurance, loan<br>'
format: int32
readOnly: true
transactionCategorisationId:
type: integer
description: 'Category id that is assigned to the transaction when the transaction matches the rule clause. This is the id field of the transaction category resource.<br><br><b>Applicable containers</b>: creditCard, investment, insurance, loan<br>'
format: int64
readOnly: true
memId:
type: integer
description: 'Unique identifier of the user.<br><br><b>Applicable containers</b>: creditCard, investment, insurance, loan<br>'
format: int64
readOnly: true
rulePriority:
type: integer
description: 'The order in which the rules get executed on transactions.<br><br><b>Applicable containers</b>: creditCard, investment, insurance, loan<br>'
format: int32
readOnly: true
TransactionCategorizationRuleResponse:
title: TransactionCategorizationRuleResponse
type: object
properties:
txnRules:
type: array
readOnly: true
items:
$ref: '#/components/schemas/TransactionCategorizationRule'
UpdateCategoryRequest:
title: UpdateCategoryRequest
required:
- id
- source
type: object
properties:
highLevelCategoryName:
type: string
id:
minimum: 1
exclusiveMinimum: false
type: integer
format: int64
source:
type: string
enum:
- SYSTEM
- USER
categoryName:
type: string
YodleeError:
title: YodleeError
type: object
properties:
errorMessage:
type: string
description: The descriptive message that explains the error scenario.
readOnly: true
errorCode:
type: string
description: The error code follows the format YNNN. The error codes do not change. New error codes may be added as we introduce new features and enhance functionalities.
readOnly: true
referenceCode:
type: string
description: Unique Yodlee identifier used to troubleshoot issues at Yodlee's end.
readOnly: true
FieldOperation:
title: FieldOperation
type: object
properties:
field:
type: string
description: 'Field for which the clause is created.<br><br><b>Applicable containers</b>: bank, creditCard, investment, insurance, loan<br><b>Applicable Values</b>:<ul><li>amount</li><li>description</li></ul><b>Applicable Values</b><br>'
enum:
- amount
- description
operation:
type: string
description: 'Operation for which the clause is created.<br><br><b>Applicable containers</b>: bank, creditCard, investment, insurance, loan<br><b>Applicable values (depends on the value of field)</b>:<ul><li>field is <b>description</b> -> operation can be<ol><li>stringEquals</li><li>stringContains</li></ol></li><li>field is <b>amount</b> -> operation can be<ol><li>numberEquals</li><li>numberLessThan</li><li>numberLessThanEquals</li><li>numberGreaterThan</li><li>numberGreaterThanEquals</li></ol></li></ul><b>Applicable Values</b><br>'
enum:
- numberEquals
- numberLessThan
- numberLessThanEquals
- numberGreaterThan
- numberGreaterThanEquals
- stringEquals
- stringContains
value:
type: object
properties: {}
description: 'The value would be the amount value in case of amount based rule clause or the string value in case of description based rule clause.<br><br><b>Applicable containers</b>: bank, creditCard, investment, insurance, loan<br><b>Applicable Values</b>:<ul><li>field is <b>description</b> -> value should be <b>min of 3 and max of 50 characters</b></li><li>field is <b>amount</b> -> value should be <b> min value of 0 and a max value of 99999999999.99</b></li></ul>'
Description:
title: Description
type: object
properties:
security:
type: string
description: 'The description will provide the actual name of the security.<br><br><b>Applicable containers</b>: investment<br>'
readOnly: true
original:
type: string
description: 'Original transaction description as it appears at the FI site.<br><br><b>Applicable containers</b>: creditCard, insurance, loan<br>'
readOnly: true
simple:
type: string
description: 'The transaction description that appears at the FI site may not be self-expla
# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/envestnet/refs/heads/main/openapi/envestnet-transactions-api-openapi.yml