Skip to main content
skill CX Codex

wise-import — Claude Code skill: what it does, how to install

Parses Wise CSV statements, handling multi-currency transfers, separate conversion fee lines, and duplicate prevention via transfer IDs.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add openaccountant/skills --skill wise-import -a claude-code
Open on GitHub

What wise-import does

This skill ingests CSV statement exports from Wise (formerly TransferWise) into Open Accountant. It validates table headers, determines payment directions by amount signs, and checks existing transfer IDs via transaction_search to prevent duplicates. Incoming funds get categorized under Income:Transfer, while balance cashback rows map to Income:Interest.

Multi-currency exchanges receive distinct handling. Transaction values remain in the source currency, with exchange rates and destination figures stored in notes. Wise charges conversion fees outside of base FX rates, so the skill creates an isolated negative entry categorized under Fees:Currency Conversion. Importing card settlements too early will capture temporary merchant names that change after final clearing.

Before writing records, the workflow presents a per-currency breakdown showing inflows, outflows, and net balances. Finalized records pass to categorize and export_transactions tools for persistence.

What it helps with

  • import Wise CSV account statements into Open Accountant
  • isolate currency conversion fees into individual expense entries
  • prevent duplicate transfer imports using unique reference IDs
  • track exchange rates and target amounts inside transaction notes

Example prompts for the agent

  • Import the Wise statement from wise_statement_eur.csv for the EUR account.
  • Parse wise_june.csv, isolate conversion fees, and show a summary per currency.
  • Check transfers.csv for duplicates against existing Wise transactions and record new entries.

How to install wise-import

1Skills CLI (Vercel)

npx skills add openaccountant/skills --skill wise-import -a claude-code

2Manually: put the files in place

~/.claude/skills/wise-import/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/wise-import/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about wise-import

How to install wise-import in Claude Code?

Run npx skills add openaccountant/skills --skill wise-import -a claude-code. The skill file will be placed in ~/.claude/skills/wise-import/SKILL.md.

How are conversion fees handled?

Wise bills conversion fees apart from exchange spreads. The skill extracts these into independent negative entries under the Fees:Currency Conversion category.

What happens with pending card transactions?

Wise sometimes lists temporary vendor names before card charges settle. If you import statements immediately, those descriptions might change later on the platform.

Source text

SKILL.md · MIT
---
name: wise-import
description: >
  Import Wise (TransferWise) CSV exports with multi-currency handling.
---

# Wise Import

## Overview
Import transaction data from Wise (formerly TransferWise) CSV statement exports. Handles multi-currency accounts, conversion fees, and international transfers. Maps Wise's transfer-centric format into Open Accountant transactions.

## Wilson Tools Used
- `transaction_search` — check for existing Wise transactions to prevent duplicates
- `categorize` — assign categories to imported Wise transactions
- `export_transactions` — export reconciled Wise data

## Column Mapping

| Wise CSV Column | Open Accountant Field | Notes |
|---|---|---|
| `TransferWise ID` or `ID` | `reference_id` | Unique transfer ID for dedup |
| `Date` | `date` | Completion date |
| `Description` | `description` | Transfer description / recipient |
| `Amount` | `amount` | Transaction amount (signed) |
| `Currency` | `currency` | Source currency ISO code |
| `Running Balance` | — | Not stored |
| `Exchange Rate` | `notes` | Stored in notes for reference |
| `Total fees` | `amount` (separate row) | Wise fee (negative = expense) |

## Workflow
1. Ask the user for the Wise CSV file path and which currency account(s) to import.
2. Parse the CSV and validate Wise column headers.
3. Process each row:
   - **Incoming transfers**: positive amount, category "Income:Transfer"
   - **Outgoing transfers**: negative amount, category based on description
   - **Conversion fees**: separate negative entry, category "Fees:Currency Conversion"
   - **Card payments**: negative amount, categorize by vendor
4. For multi-currency transfers:
   - Record the transaction in the source currency
   - Store the exchange rate and target amount in notes
   - Create the fee entry separately (Wise charges a conversion fee distinct from the exchange rate)
5. Deduplicate using Wise transfer ID.
6. Preview import summary per currency: inflows, outflows, fees, net.
7. Insert transactions and confirm.

## Without Wilson
To work with Wise exports manually:

### Downloading from Wise
1. Log in at **wise.com**
2. Click on the relevant currency account (e.g., USD, EUR, GBP)
3. Go to **Statements** (right side or under account menu)
4. Select the date range
5. Choose **CSV** format (also available: PDF, XLSX)
6. Click **Download**
7. Repeat for each currency account you want to import

### Manual Processing in a Spreadsheet
1. Open the CSV in Google Sheets or Excel.
2. **Identify transaction types** by the Description and Amount sign:
   - Positive amounts = money received (income, incoming transfers)
   - Negative amounts = money sent (expenses, outgoing transfers, card payments)
3. **Separate fees**: Wise embeds fees in certain rows. Look for rows with "fee" in the description or where the Description references a parent transfer.
   - Some Wise CSVs have a `Total fees` column — use this directly.
   - If not, fees appear as separate rows with descriptions like "Conversion fee" or "Transfer fee."
4. **Multi-currency handling**:
   - If you have multiple currency accounts, keep them in separate sheets or add a "Currency" filter.
   - Do NOT sum amounts across currencies without converting first.
   - To convert: `=Amount * ExchangeRate` (use the rate from the Wise statement, not a live rate).
5. **Summary formulas** (per currency):
   ```
   Total Inflows:     =SUMIFS(Amount, Amount, ">0", Currency, "USD")
   Total Outflows:    =ABS(SUMIFS(Amount, Amount, "<0", Currency, "USD"))
   Total Fees:        =ABS(SUMIFS(TotalFees, Currency, "USD"))
   Net:               =Inflows - Outflows
   ```
6. **Reconcile**: The running balance in the last row should match your Wise account balance.

### Alternative: Wise API
For developers, Wise has a public API at `api.transferwise.com` that can pull statements programmatically. Requires an API key from your Wise business account settings.

## Important Notes
- Wise CSV format varies slightly between personal and business accounts. Business accounts include additional columns like `Batch ID` and `Reference`.
- Multi-currency: each currency account exports separately. If you converted USD to EUR, the debit appears in your USD statement and the credit in your EUR statement.
- Wise fees are typically lower than traditional banks (0.3-2% depending on corridor) but they appear as separate line items, not embedded in the exchange rate.
- "Balance cashback" rows are small interest payments from Wise — import these as "Income:Interest".
- Wise card transactions may appear with temporary merchant descriptions that update after settlement. If you import early, descriptions may change.

© openaccountant · MIT · openaccountant/skills

Similar skills

All skills for Finance and business →

From the same set44

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor