<!-- BusyBot node reference — https://busybot.net/tools/wise/ -->

> Node: Wise (`wise`) · Action (binary) · v1
> Category: Finance · Credentials: Wise API (`wiseApi`)
> Updated: 2026-08-16

# Wise

> Manage Wise international transfers and multi-currency accounts with statement download

## Overview

The Wise tool provides operations against the Wise (TransferWise) API. Supports 6 resources: (1) Account -- getBalances, getCurrencies, getStatement (with binary download for CSV/PDF/XML formats). (2) Exchange Rate -- get (with optional time/range/interval). (3) Profile -- get, getAll. (4) Quote -- create, get. (5) Recipient -- getAll (with returnAll/limit pagination). (6) Transfer -- create, delete, execute, get (with optional receipt PDF download), getAll (with date/currency/status filters). Binary operations: Account getStatement produces CSV/PDF/XML binary files. Transfer get with downloadReceipt produces PDF receipt. Uses Bearer token authentication with optional SCA (Strong Customer Authentication) via RSA-SHA256 signed x-2fa-approval headers.

**Category:** Finance  
**Tool Name:** `wise`  
**Version:** 1

**Appearance:** Icon: `si-wise` | Color: `#9FE870`

## Node Type

**Action (Binary)** — handles file/binary data operations

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Wise API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/wise-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Account | `account` |
| Exchange Rate | `exchangeRate` |
| Profile | `profile` |
| Quote | `quote` |
| Recipient | `recipient` |
| Transfer | `transfer` |

### Operations

Each resource has its own Operation list, and several resources reuse the values `get` and `getAll`. Pick the resource first, then the operation.

| Resource | Operation | Value | Description |
|----------|-----------|-------|-------------|
| Account | Get Balances | `getBalances` | Retrieve balances for all account currencies |
| Account | Get Currencies | `getCurrencies` | Retrieve available currencies for the borderless account |
| Account | Get Statement | `getStatement` | Retrieve the account statement (JSON, CSV, PDF, or XML) |
| Exchange Rate | Get | `get` | Get the exchange rate between two currencies |
| Profile | Get | `get` | Get a user profile |
| Profile | Get Many | `getAll` | Get all user profiles |
| Quote | Create | `create` | Create a transfer quote |
| Quote | Get | `get` | Get a quote by ID |
| Recipient | Get Many | `getAll` | Get all recipient accounts |
| Transfer | Create | `create` | Create a transfer |
| Transfer | Delete | `delete` | Cancel a transfer |
| Transfer | Execute | `execute` | Fund and execute a transfer from balance |
| Transfer | Get | `get` | Get a transfer (with optional receipt PDF download) |
| Transfer | Get Many | `getAll` | Get all transfers with filters |

### Parameters

`Account: Get Currencies` and `Profile: Get Many` take no parameters of their own.

Most operations need a Profile ID — run `Profile: Get Many` once to find yours. Two different parameters are labelled **Source Currency** and two are labelled **Target Currency**: the exchange-rate pair uses `source`/`target`, while a quote uses `sourceCurrency`/`targetCurrency`.

#### Account: Get Balances

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Profile ID | `string` | Yes | — | ID of the user profile to retrieve the balance of. Use profile:getAll to find your profile IDs. |

#### Account: Get Statement

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Profile ID | `string` | Yes | — | ID of the user profile whose account to retrieve the statement of. |
| Borderless Account ID | `string` | Yes | — | ID of the borderless account to retrieve the statement of. Use account:getBalances to find account IDs. |
| Currency | `string` | Yes | — | 3-letter currency code of the borderless account to retrieve the statement of (e.g. GBP, EUR, USD). |
| Format | `options` | No | `json` | File format to retrieve the statement in. JSON returns structured data; CSV, PDF, and XML return binary file output. |
| | | | | Options: `json`, `csv`, `pdf`, `xml` (XML in CAMT.053 form) |
| Binary Property (`binaryPropertyName`) | `string` | Yes | `data` | Name of the binary property to store the downloaded file in. Names are case-sensitive — see the upstream node's Binary Data panel for the exact names to use. _(shown when Format is `csv`, `pdf`, `xml`)_ |
| File Name (`fileName`) | `string` | Yes | — | Name of the file that will be downloaded. _(shown when Format is `csv`, `pdf`, `xml`)_ |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional statement settings. |
| — Line Style (`lineStyle`) | `options` | No | `COMPACT` | Line style to retrieve the statement in. |
| | | | | Options: `COMPACT` (single line per transaction), `FLAT` (separate lines for transaction fees) |
| — Interval Start (`intervalStart`) | `string` | No | — | Start of the statement period (ISO 8601 datetime). Defaults to 1 month ago if not set. |
| — Interval End (`intervalEnd`) | `string` | No | — | End of the statement period (ISO 8601 datetime). Defaults to now if not set. |

#### Exchange Rate: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Source Currency (`source`) | `string` | Yes | — | Code of the source currency (e.g. GBP, USD). |
| Target Currency (`target`) | `string` | Yes | — | Code of the target currency (e.g. EUR, USD). |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional time-range settings. |
| — Interval | `options` | No | `day` | Grouping interval for exchange rates. |
| | | | | Options: `day`, `hour`, `minute` |
| — Range Start (`from`) | `string` | No | — | Start of the date range (ISO 8601). Defaults to 1 month ago if not set. |
| — Range End (`to`) | `string` | No | — | End of the date range (ISO 8601). Defaults to now if not set. |
| — Time | `string` | No | — | Specific point in time to retrieve the exchange rate for (ISO 8601). If set, from/to are ignored. |

#### Profile: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Profile ID | `string` | Yes | — | ID of the user profile to retrieve. |

#### Quote: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Profile ID | `string` | Yes | — | ID of the user profile to create the quote under. |
| Target Account ID | `string` | Yes | — | ID of the recipient account that will receive the funds. |
| Amount Type (`amountType`) | `options` | No | `source` | Whether the amount is the source (sent) or target (received) amount. |
| | | | | Options: `source`, `target` |
| Amount | `number` | Yes | `1` | Amount of funds for the quote. |
| Source Currency (`sourceCurrency`) | `string` | Yes | — | Code of the currency to send (e.g. GBP). Automatically uppercased. |
| Target Currency (`targetCurrency`) | `string` | Yes | — | Code of the currency to receive (e.g. EUR). Automatically uppercased. |

#### Quote: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Quote ID | `string` | Yes | — | ID of the quote to retrieve. |

#### Recipient: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `5` | Max number of results to return. Accepts 1–1000. _(shown when Return All is `false`)_ |

#### Transfer: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Profile ID | `string` | Yes | — | ID of the user profile to create the transfer under. |
| Quote ID | `string` | Yes | — | ID of the quote based on which to create the transfer. |
| Target Account ID | `string` | Yes | — | ID of the recipient account that will receive the funds. |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional transfer settings. |
| — Reference | `string` | No | — | Reference text to show in the recipient's bank statement. |

#### Transfer: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Transfer ID | `string` | Yes | — | ID of the transfer to cancel. |

#### Transfer: Execute

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Profile ID | `string` | Yes | — | ID of the user profile to execute the transfer under. |
| Transfer ID | `string` | Yes | — | ID of the transfer to execute. |

#### Transfer: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Transfer ID | `string` | Yes | — | ID of the transfer to retrieve. |
| Download Receipt (`downloadReceipt`) | `boolean` | No | `false` | Whether to download the transfer receipt as a PDF. Only for executed transfers with status "Outgoing Payment Sent". |
| Binary Property (`binaryPropertyName`) | `string` | Yes | `data` | Name of the binary property to store the receipt PDF in. Names are case-sensitive — see the upstream node's Binary Data panel for the exact names to use. _(shown when Download Receipt is `true`)_ |
| File Name (`fileName`) | `string` | Yes | — | Name of the downloaded receipt file. _(shown when Download Receipt is `true`)_ |

#### Transfer: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Profile ID | `string` | Yes | — | ID of the user profile to list transfers for. |
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `5` | Max number of results to return. Accepts 1–1000. _(shown when Return All is `false`)_ |
| Filters (`filters`) | `collection` | No | `{}` | Narrow the transfer list. |
| — Created Date Start (`createdDateStart`) | `string` | No | — | Start of the date range filter (ISO 8601). Defaults to 1 month ago. |
| — Created Date End (`createdDateEnd`) | `string` | No | — | End of the date range filter (ISO 8601). Defaults to now. |
| — Source Currency (`sourceCurrency`) | `string` | No | — | Source currency code for filtering transfers. |
| — Target Currency (`targetCurrency`) | `string` | No | — | Target currency code for filtering transfers. |
| — Status | `options` | No | `processing` | Transfer status filter. |
| | | | | Options: `bounced_back`, `cancelled`, `charged_back`, `funds_converted`, `funds_refunded`, `incoming_payment_waiting`, `outgoing_payment_sent`, `processing`, `unknown`, `waiting_recipient_input_to_proceed` |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. Accepts 1–100. |

## Output Data

**One input item always produces exactly one output item — no operation fans out.** Binary data on the input item is forwarded unchanged, and a downloaded file is added alongside it rather than replacing it.

How the JSON is built depends on whether Wise answered with one record or a list:

- **Single-record operations merge onto the input item's JSON.** The returned object's fields sit alongside the fields the item already carried, so downstream nodes address them directly (`{{ $json.id }}`). A response field with the same name as an existing item field overwrites it.
- **List operations replace the item JSON.** The whole list lands on one output item under `results`, and nothing from the input item's JSON carries over. Address individual entries as `{{ $json.results }}`, or put an Item Lists / Split node after this one if you want one item per record.

| Operations | Output |
|------------|--------|
| Account Get Balances and Get Currencies; Exchange Rate Get; Profile Get Many; Recipient Get Many; Transfer Get Many | One output item whose JSON is `{ "results": [ … ] }` — the input JSON is replaced. |
| Account Get Statement with Format `json`; Profile Get; Quote Create and Get; Transfer Create, Delete, Execute, and Get without a receipt | One output item; the returned object merged onto the input JSON. |
| Account Get Statement with Format `csv`, `pdf` or `xml` | One output item carrying the file in binary, with `format`, `fileName` and `fileSize` merged onto the input JSON. |
| Transfer Get with Download Receipt on | One output item carrying the receipt PDF in binary, with `transferId`, `downloadedReceipt`, `fileName` and `fileSize` merged onto the input JSON. |

Downloaded files land on the binary property you named, with the MIME type matching the format (`text/csv`, `application/pdf`, `application/xml`) so a downstream upload or email node can attach them as-is.

## Usage Examples

- Download account statement as PDF from Wise
- Get exchange rate between GBP and EUR
- Create a transfer quote in Wise
- List all recipients in Wise
- Download a transfer receipt as PDF
- Get all transfers for the last month
- Execute a transfer from balance

## Example Configuration

Check balances across every currency on a profile:

```json
{
  "type": "wise",
  "parameters": {
    "resource": "account",
    "operation": "getBalances",
    "profileId": "{{ $json.profileId }}"
  }
}
```

Download a PDF statement for one currency and date range:

```json
{
  "type": "wise",
  "parameters": {
    "resource": "account",
    "operation": "getStatement",
    "profileId": "12345678",
    "borderlessAccountId": "87654321",
    "currency": "GBP",
    "format": "pdf",
    "binaryPropertyName": "statementPdf",
    "fileName": "statement_2026.pdf",
    "additionalFields": {
      "lineStyle": "COMPACT",
      "intervalStart": "2026-01-01T00:00:00Z",
      "intervalEnd": "2026-06-30T23:59:59Z"
    }
  }
}
```

Track a rate day by day over a period:

```json
{
  "type": "wise",
  "parameters": {
    "resource": "exchangeRate",
    "operation": "get",
    "source": "GBP",
    "target": "EUR",
    "additionalFields": {
      "interval": "day",
      "from": "2026-01-01T00:00:00Z",
      "to": "2026-06-30T00:00:00Z"
    }
  }
}
```

Quote a £1,000 send:

```json
{
  "type": "wise",
  "parameters": {
    "resource": "quote",
    "operation": "create",
    "profileId": "12345678",
    "targetAccountId": "{{ $json.recipientId }}",
    "amountType": "source",
    "amount": 1000,
    "sourceCurrency": "GBP",
    "targetCurrency": "EUR"
  }
}
```

Turn that quote into a transfer:

```json
{
  "type": "wise",
  "parameters": {
    "resource": "transfer",
    "operation": "create",
    "profileId": "12345678",
    "quoteId": "{{ $json.id }}",
    "targetAccountId": "{{ $json.recipientId }}",
    "additionalFields": {
      "reference": "Monthly payment"
    }
  }
}
```

Fund and send it from your balance:

```json
{
  "type": "wise",
  "parameters": {
    "resource": "transfer",
    "operation": "execute",
    "profileId": "12345678",
    "transferId": "{{ $json.id }}"
  }
}
```

Fetch a transfer and keep its receipt as a PDF:

```json
{
  "type": "wise",
  "parameters": {
    "resource": "transfer",
    "operation": "get",
    "transferId": "{{ $json.id }}",
    "downloadReceipt": true,
    "binaryPropertyName": "receiptPdf",
    "fileName": "transfer_receipt.pdf"
  }
}
```

List transfers in a window, filtered by currency and status:

```json
{
  "type": "wise",
  "parameters": {
    "resource": "transfer",
    "operation": "getAll",
    "profileId": "12345678",
    "returnAll": false,
    "limit": 50,
    "filters": {
      "createdDateStart": "2026-01-01T00:00:00Z",
      "createdDateEnd": "2026-06-30T23:59:59Z",
      "sourceCurrency": "GBP",
      "status": "processing"
    }
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage Wise international transfers, accounts, exchange rates, and quotes -- with binary PDF/CSV statement and receipt download.

### The Transfer Workflow

1. **Profile: Get Many** to find your profile ID.
2. **Quote: Create** with the profile ID, recipient account, amount and currency pair.
3. **Transfer: Create** using the quote's ID.
4. **Transfer: Execute** to fund it from your balance.
5. **Transfer: Get** with **Download Receipt** once the transfer reaches `outgoing_payment_sent`, to keep the PDF.

### Account Management

- **Get Balances** shows available funds per currency, and its response also carries the borderless account IDs that **Get Statement** needs.
- **Get Currencies** lists what the account supports.
- **Get Statement** is the reporting workhorse: `json` for data you will process in the workflow, `csv`/`pdf`/`xml` when a person or an accounting system is going to read the file.

### Important Notes

- Currency codes are uppercased for you, so `gbp` and `GBP` behave the same.
- Binary downloads need both **Binary Property** and **File Name**; the file lands on the property you name and the item's existing binary is kept.
- Collections (**Additional Fields**, **Filters**) are flat objects keyed by the sub-field's internal name.
- A receipt is only available once the transfer has actually been sent — asking earlier returns an error rather than an empty file.
</content>