feat(Wise Node): Add Activity resource to fetch transactions without SCA#28565
Open
pat-s wants to merge 2 commits inton8n-io:masterfrom
Open
feat(Wise Node): Add Activity resource to fetch transactions without SCA#28565pat-s wants to merge 2 commits inton8n-io:masterfrom
pat-s wants to merge 2 commits inton8n-io:masterfrom
Conversation
The Wise balance statement endpoint requires Strong Customer Authentication (SCA) via private key signing, which Wise deprecated for personal/business API tokens in mid-2025 (see n8n-io#16675). This makes the existing getStatement operation unusable for most users. The Activities API (GET /v1/profiles/{profileId}/activities) returns transaction data (type, amount, currency, status, timestamps) without requiring SCA, providing a working alternative. This adds an "Activity" resource with a "Get Many" operation that: - Fetches activities for a given profile - Supports cursor-based pagination (Return All) - Supports filtering by date (Since) and status - Does not require SCA or a private key
Contributor
There was a problem hiding this comment.
1 issue found across 3 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="packages/nodes-base/nodes/Wise/Wise.node.ts">
<violation number="1" location="packages/nodes-base/nodes/Wise/Wise.node.ts:344">
P2: `activity:getAll` with `returnAll=false` does not paginate cursor results before applying client-side status filtering, so it can return too few matching items.</violation>
</file>
Architecture diagram
sequenceDiagram
participant Engine as n8n Workflow Engine
participant Node as Wise Node
participant WiseAPI as Wise External API
Note over Engine, WiseAPI: NEW: Activity "Get Many" Flow (No SCA Required)
Engine->>Node: execute()
Node->>Node: Get parameters (profileId, filters, returnAll)
opt Filters: Since Date
Node->>Node: Convert 'since' to UTC via Moment.js
end
alt Option: Return All = true
loop While Cursor exists
Node->>WiseAPI: NEW: GET /v1/profiles/{id}/activities (with cursor/size)
WiseAPI-->>Node: 200 OK (activities[] + next_cursor)
opt Filters: Status
Node->>Node: CHANGED: Client-side filter by status (COMPLETED/PENDING)
end
Node->>Node: Accumulate results
end
else Option: Return All = false (Limit)
Node->>WiseAPI: NEW: GET /v1/profiles/{id}/activities (limit size)
WiseAPI-->>Node: 200 OK (activities[] + cursor)
opt Filters: Status
Node->>Node: CHANGED: Client-side filter by status
end
Node->>Node: Slice array to limit
end
Node-->>Engine: Return activity list data
Note over Node, WiseAPI: Comparison: Unlike "Get Statement", this flow<br/>does NOT trigger SCA/private key signing.
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.
When returnAll=false and a status filter is set, paginate through cursor results until we have enough matching items, then slice to the requested limit.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
GET /v1/profiles/{profileId}/activitieswhich does not require SCAsince), and status filteringgetStatementoperation (Wise integration broken because the SCA authentication is no longer supported #16675)Context
Since mid-2025, Wise deprecated key-based SCA signing for personal/business API tokens. This broke the
Account > Get Statementoperation for most users in the EU/UK/EEA, as the balance statement endpoint requires SCA.The Activities API returns transaction data (type, amount, currency, status, timestamps, descriptions) without requiring SCA or a private key, making it a viable alternative for users who need to fetch transaction history programmatically.
Files changed
packages/nodes-base/nodes/Wise/descriptions/ActivityDescription.ts— new resource descriptionpackages/nodes-base/nodes/Wise/descriptions/index.ts— export the new descriptionpackages/nodes-base/nodes/Wise/Wise.node.ts— add Activity resource option and execute logicCloses #16675