naftiko: 1.0.0-alpha2 info: label: Yodlee Core APIs — Transactions description: 'Yodlee Core APIs — Transactions. 15 operations. Lead operation: Get Transactions. Self-contained Naftiko capability covering one Yodlee business surface.' tags: - Yodlee - Transactions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: YODLEE_API_KEY: YODLEE_API_KEY capability: consumes: - type: http namespace: core-transactions baseUri: '' description: Yodlee Core APIs — Transactions business capability. Self-contained, no shared references. resources: - name: transactions path: /transactions operations: - name: gettransactions method: GET description: Get Transactions outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: query type: string description: Comma separated accountIds - name: baseType in: query type: string description: DEBIT/CREDIT - name: categoryId in: query type: string description: Comma separated categoryIds - name: categoryType in: query type: string description: Transaction Category Type(LOAN, UNCATEGORIZE, INCOME, TRANSFER, EXPENSE or DEFERRED_COMPENSATION) - name: container in: query type: string description: bank/creditCard/investment/insurance/loan - name: convertToCurrency in: query type: string description: On-demand currency conversion parameter - name: detailCategoryId in: query type: string description: 'Comma separated detailCategoryIds. The id of the detail category that is assigned to the transaction. This is a premium attribute which will be returned in the ' - name: fromDate in: query type: string description: Transaction from date(YYYY-MM-DD) - name: highLevelCategoryId in: query type: string description: Comma separated highLevelCategoryIds - name: keyword in: query type: string description: Transaction search text - name: skip in: query type: integer description: skip (Min 0) - name: toDate in: query type: string description: Transaction end date (YYYY-MM-DD) - name: top in: query type: integer description: top (Max 500) - name: transactionSourceId in: query type: string description: A unique ID that the provider site has assigned to the transaction - name: type in: query type: string description: Transaction Type(SELL,SWEEP, etc.) for bank/creditCard/investment - name: updatetransaction method: PUT description: Update Transaction for Transaction Source ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: transactionRequest in: body type: string description: transactionRequest required: true - name: transactions-categories path: /transactions/categories operations: - name: createtransactioncategory method: POST description: Create Category outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: transactionCategoryRequest in: body type: string description: User Transaction Category in JSON format required: true - name: gettransactioncategories method: GET description: Get Transaction Category List outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatetransactioncategory method: PUT description: Update Category outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: updateCategoryRequest in: body type: string description: updateCategoryRequest required: true - name: transactions-categories-rules path: /transactions/categories/rules operations: - name: createorruntransactioncategorizationrules method: POST description: Create or Run Transaction Categorization Rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: action in: query type: string description: To run rules, pass action=run. Only value run is supported - name: ruleParam in: query type: string description: rules(JSON format) to categorize the transactions - name: gettransactioncategorizationrulesdeprecated method: GET description: Get Transaction Categorization Rules outputRawFormat: json outputParameters: - name: result type: object value: $. - name: transactions-categories-rules-ruleId path: /transactions/categories/rules/{ruleId} operations: - name: runtransactioncategorizationrule method: POST description: Run Transaction Categorization Rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: action in: query type: string required: true - name: ruleId in: path type: integer description: Unique id of the categorization rule required: true - name: deletetransactioncategorizationrule method: DELETE description: Delete Transaction Categorization Rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ruleId in: path type: integer description: ruleId required: true - name: updatetransactioncategorizationrule method: PUT description: Update Transaction Categorization Rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ruleId in: path type: integer description: ruleId required: true - name: transactionCategoriesRuleRequest in: body type: string description: transactionCategoriesRuleRequest required: true - name: transactions-categories-txnRules path: /transactions/categories/txnRules operations: - name: gettransactioncategorizationrules method: GET description: Get Transaction Categorization Rules outputRawFormat: json outputParameters: - name: result type: object value: $. - name: transactions-categories-categoryId path: /transactions/categories/{categoryId} operations: - name: deletetransactioncategory method: DELETE description: Delete Category outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: categoryId in: path type: integer description: categoryId required: true - name: transactions-count path: /transactions/count operations: - name: gettransactionscount method: GET description: Get Transactions Count outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: accountId in: query type: string description: Comma separated accountIds - name: baseType in: query type: string description: DEBIT/CREDIT - name: categoryId in: query type: string description: Comma separated categoryIds - name: categoryType in: query type: string description: Transaction Category Type(LOAN, UNCATEGORIZE, INCOME, TRANSFER, EXPENSE or DEFERRED_COMPENSATION) - name: container in: query type: string description: bank/creditCard/investment/insurance/loan - name: detailCategoryId in: query type: string description: 'Comma separated detailCategoryIds. The id of the detail category that is assigned to the transaction. This is a premium attribute which will be returned in the ' - name: fromDate in: query type: string description: Transaction from date(YYYY-MM-DD) - name: highLevelCategoryId in: query type: string description: Comma separated highLevelCategoryIds - name: keyword in: query type: string description: Transaction search text - name: toDate in: query type: string description: Transaction end date (YYYY-MM-DD) - name: type in: query type: string description: Transaction Type(SELL,SWEEP, etc.) - name: transactions-transactionId path: /transactions/{transactionId} operations: - name: gettransactionsbytransactionid method: GET description: Get Transactions using Transaction ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: container in: query type: string description: bank/creditCard/investment/insurance/loan required: true - name: convertToCurrency in: query type: string description: On-demand currency conversion parameter - name: transactionId in: path type: integer description: An unique identifier for the transaction. The combination of the id and account container are unique in the system. required: true - name: updatetransaction1 method: PUT description: Update Transaction outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: transactionId in: path type: integer description: transactionId required: true - name: transactionRequest in: body type: string description: transactionRequest required: true exposes: - type: rest namespace: core-transactions-rest port: 8080 description: REST adapter for Yodlee Core APIs — Transactions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/transactions name: transactions description: REST surface for transactions. operations: - method: GET name: gettransactions description: Get Transactions call: core-transactions.gettransactions with: accountId: rest.accountId baseType: rest.baseType categoryId: rest.categoryId categoryType: rest.categoryType container: rest.container convertToCurrency: rest.convertToCurrency detailCategoryId: rest.detailCategoryId fromDate: rest.fromDate highLevelCategoryId: rest.highLevelCategoryId keyword: rest.keyword skip: rest.skip toDate: rest.toDate top: rest.top transactionSourceId: rest.transactionSourceId type: rest.type outputParameters: - type: object mapping: $. - method: PUT name: updatetransaction description: Update Transaction for Transaction Source ID call: core-transactions.updatetransaction with: transactionRequest: rest.transactionRequest outputParameters: - type: object mapping: $. - path: /v1/transactions/categories name: transactions-categories description: REST surface for transactions-categories. operations: - method: POST name: createtransactioncategory description: Create Category call: core-transactions.createtransactioncategory with: transactionCategoryRequest: rest.transactionCategoryRequest outputParameters: - type: object mapping: $. - method: GET name: gettransactioncategories description: Get Transaction Category List call: core-transactions.gettransactioncategories outputParameters: - type: object mapping: $. - method: PUT name: updatetransactioncategory description: Update Category call: core-transactions.updatetransactioncategory with: updateCategoryRequest: rest.updateCategoryRequest outputParameters: - type: object mapping: $. - path: /v1/transactions/categories/rules name: transactions-categories-rules description: REST surface for transactions-categories-rules. operations: - method: POST name: createorruntransactioncategorizationrules description: Create or Run Transaction Categorization Rule call: core-transactions.createorruntransactioncategorizationrules with: action: rest.action ruleParam: rest.ruleParam outputParameters: - type: object mapping: $. - method: GET name: gettransactioncategorizationrulesdeprecated description: Get Transaction Categorization Rules call: core-transactions.gettransactioncategorizationrulesdeprecated outputParameters: - type: object mapping: $. - path: /v1/transactions/categories/rules/{ruleid} name: transactions-categories-rules-ruleid description: REST surface for transactions-categories-rules-ruleId. operations: - method: POST name: runtransactioncategorizationrule description: Run Transaction Categorization Rule call: core-transactions.runtransactioncategorizationrule with: action: rest.action ruleId: rest.ruleId outputParameters: - type: object mapping: $. - method: DELETE name: deletetransactioncategorizationrule description: Delete Transaction Categorization Rule call: core-transactions.deletetransactioncategorizationrule with: ruleId: rest.ruleId outputParameters: - type: object mapping: $. - method: PUT name: updatetransactioncategorizationrule description: Update Transaction Categorization Rule call: core-transactions.updatetransactioncategorizationrule with: ruleId: rest.ruleId transactionCategoriesRuleRequest: rest.transactionCategoriesRuleRequest outputParameters: - type: object mapping: $. - path: /v1/transactions/categories/txnrules name: transactions-categories-txnrules description: REST surface for transactions-categories-txnRules. operations: - method: GET name: gettransactioncategorizationrules description: Get Transaction Categorization Rules call: core-transactions.gettransactioncategorizationrules outputParameters: - type: object mapping: $. - path: /v1/transactions/categories/{categoryid} name: transactions-categories-categoryid description: REST surface for transactions-categories-categoryId. operations: - method: DELETE name: deletetransactioncategory description: Delete Category call: core-transactions.deletetransactioncategory with: categoryId: rest.categoryId outputParameters: - type: object mapping: $. - path: /v1/transactions/count name: transactions-count description: REST surface for transactions-count. operations: - method: GET name: gettransactionscount description: Get Transactions Count call: core-transactions.gettransactionscount with: accountId: rest.accountId baseType: rest.baseType categoryId: rest.categoryId categoryType: rest.categoryType container: rest.container detailCategoryId: rest.detailCategoryId fromDate: rest.fromDate highLevelCategoryId: rest.highLevelCategoryId keyword: rest.keyword toDate: rest.toDate type: rest.type outputParameters: - type: object mapping: $. - path: /v1/transactions/{transactionid} name: transactions-transactionid description: REST surface for transactions-transactionId. operations: - method: GET name: gettransactionsbytransactionid description: Get Transactions using Transaction ID call: core-transactions.gettransactionsbytransactionid with: container: rest.container convertToCurrency: rest.convertToCurrency transactionId: rest.transactionId outputParameters: - type: object mapping: $. - method: PUT name: updatetransaction1 description: Update Transaction call: core-transactions.updatetransaction1 with: transactionId: rest.transactionId transactionRequest: rest.transactionRequest outputParameters: - type: object mapping: $. - type: mcp namespace: core-transactions-mcp port: 9090 transport: http description: MCP adapter for Yodlee Core APIs — Transactions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-transactions description: Get Transactions hints: readOnly: true destructive: false idempotent: true call: core-transactions.gettransactions with: accountId: tools.accountId baseType: tools.baseType categoryId: tools.categoryId categoryType: tools.categoryType container: tools.container convertToCurrency: tools.convertToCurrency detailCategoryId: tools.detailCategoryId fromDate: tools.fromDate highLevelCategoryId: tools.highLevelCategoryId keyword: tools.keyword skip: tools.skip toDate: tools.toDate top: tools.top transactionSourceId: tools.transactionSourceId type: tools.type outputParameters: - type: object mapping: $. - name: update-transaction-transaction-source-id description: Update Transaction for Transaction Source ID hints: readOnly: false destructive: false idempotent: true call: core-transactions.updatetransaction with: transactionRequest: tools.transactionRequest outputParameters: - type: object mapping: $. - name: create-category description: Create Category hints: readOnly: false destructive: false idempotent: false call: core-transactions.createtransactioncategory with: transactionCategoryRequest: tools.transactionCategoryRequest outputParameters: - type: object mapping: $. - name: get-transaction-category-list description: Get Transaction Category List hints: readOnly: true destructive: false idempotent: true call: core-transactions.gettransactioncategories outputParameters: - type: object mapping: $. - name: update-category description: Update Category hints: readOnly: false destructive: false idempotent: true call: core-transactions.updatetransactioncategory with: updateCategoryRequest: tools.updateCategoryRequest outputParameters: - type: object mapping: $. - name: create-run-transaction-categorization-rule description: Create or Run Transaction Categorization Rule hints: readOnly: false destructive: false idempotent: false call: core-transactions.createorruntransactioncategorizationrules with: action: tools.action ruleParam: tools.ruleParam outputParameters: - type: object mapping: $. - name: get-transaction-categorization-rules description: Get Transaction Categorization Rules hints: readOnly: true destructive: false idempotent: true call: core-transactions.gettransactioncategorizationrulesdeprecated outputParameters: - type: object mapping: $. - name: run-transaction-categorization-rule description: Run Transaction Categorization Rule hints: readOnly: false destructive: false idempotent: false call: core-transactions.runtransactioncategorizationrule with: action: tools.action ruleId: tools.ruleId outputParameters: - type: object mapping: $. - name: delete-transaction-categorization-rule description: Delete Transaction Categorization Rule hints: readOnly: false destructive: true idempotent: true call: core-transactions.deletetransactioncategorizationrule with: ruleId: tools.ruleId outputParameters: - type: object mapping: $. - name: update-transaction-categorization-rule description: Update Transaction Categorization Rule hints: readOnly: false destructive: false idempotent: true call: core-transactions.updatetransactioncategorizationrule with: ruleId: tools.ruleId transactionCategoriesRuleRequest: tools.transactionCategoriesRuleRequest outputParameters: - type: object mapping: $. - name: get-transaction-categorization-rules-2 description: Get Transaction Categorization Rules hints: readOnly: true destructive: false idempotent: true call: core-transactions.gettransactioncategorizationrules outputParameters: - type: object mapping: $. - name: delete-category description: Delete Category hints: readOnly: false destructive: true idempotent: true call: core-transactions.deletetransactioncategory with: categoryId: tools.categoryId outputParameters: - type: object mapping: $. - name: get-transactions-count description: Get Transactions Count hints: readOnly: true destructive: false idempotent: true call: core-transactions.gettransactionscount with: accountId: tools.accountId baseType: tools.baseType categoryId: tools.categoryId categoryType: tools.categoryType container: tools.container detailCategoryId: tools.detailCategoryId fromDate: tools.fromDate highLevelCategoryId: tools.highLevelCategoryId keyword: tools.keyword toDate: tools.toDate type: tools.type outputParameters: - type: object mapping: $. - name: get-transactions-using-transaction-id description: Get Transactions using Transaction ID hints: readOnly: true destructive: false idempotent: true call: core-transactions.gettransactionsbytransactionid with: container: tools.container convertToCurrency: tools.convertToCurrency transactionId: tools.transactionId outputParameters: - type: object mapping: $. - name: update-transaction description: Update Transaction hints: readOnly: false destructive: false idempotent: true call: core-transactions.updatetransaction1 with: transactionId: tools.transactionId transactionRequest: tools.transactionRequest outputParameters: - type: object mapping: $.