The short answer

The Wise file has 18 columns, dates written as YYYY-MM-DD HH:MM:SS and an unsigned amount with a direction column. The CSV written for Xero has the columns Date,Amount,Payee,Description,Reference. So the date is rewritten as DD/MM/YYYY, the amount is written as one signed number, and the text columns are moved as in the table below.

Paid profile. The free manual column mapper works for any bank, this one included, but the free version writes only the first 25 converted rows of a file. The 9 USD one-time licence adds the ready-made Wise profile (one of the 35 paid profiles) and removes the 25-row limit. The column table on this page is free to read and can be used to fill in the manual mapper.

Open the converter

The converter runs in your browser. Your file is not uploaded.

What the Wise CSV looks like

Note kept with this layout in the profile data: Eighteen columns. The amount column is unsigned: money in and money out sit in the same column, and the third column gives the direction. The hledger rules file labels the eighteen fields id, status, direction, date_created, date_finished, source_fee_amount, source_fee_currency, target_fee_amount, target_fee_currency, source_name, source_amount_after_fees, source_currency, target_name, target_amount_after_fees, target_currency, exchange_rate, reference, batch (the rule author's labels, not the header text). The converter must read the direction column to set the sign and should show it for confirmation.

What Xero accepts

The file the converter writes for Xero: Date,Amount,Payee,Description,Reference
Xero columnRequired by XeroFilled from the Wise file
Daterequiredcolumn 4
Amountrequiredcolumn 14
Payeeoptionalcolumn 13
Descriptionoptionalcolumn 17
Referenceoptionalcolumn 1

From a web search excerpt of the vendor's help page (the page itself refuses automated reading; re-check it in a browser): "Show income as positive amounts and expenses as negative amounts using a negative sign in front of the amount or with brackets, for example -30.00 or (30.00)."

Column-by-column mapping

Every column of the Wise file, left to right, and where it ends up in the Xero file.

ColumnHeader textWhat it holdsWhere it goes in the Xero file
1not given by the sourceReference or check numberReference
2not given by the sourceNot usedNot copied
3not given by the sourceDirection (in or out)Not copied; it decides the sign of the amount
4not given by the sourceTransaction dateDate, rewritten as DD/MM/YYYY
5not given by the sourceNot usedNot copied
6not given by the sourceNot usedNot copied
7not given by the sourceNot usedNot copied
8not given by the sourceNot usedNot copied
9not given by the sourceNot usedNot copied
10not given by the sourceNot usedNot copied
11not given by the sourceNot usedNot copied
12not given by the sourceNot usedNot copied
13not given by the sourcePayee or counterpartyPayee
14not given by the sourceAmount, unsignedAmount, negative when the direction column says money out
15not given by the sourceCurrencyNot copied
16not given by the sourceNot usedNot copied
17not given by the sourceMemo or noteDescription, after the bank's description text
18not given by the sourceNot usedNot copied

Pitfalls for Wise to Xero

Dates

Amounts and their direction

Other Xero import rules

Before and after: an invented example

Invented sample data. These four rows were made up for this page. They are not from a real Wise export and hold no real account, name or balance.

The source gives column positions only, so the headings below are the column number and what the column holds, not the bank's header text. The 11 unused columns of the file are left out of the table.

Before: rows laid out like the Wise file
1: reference or check number3: direction (in or out)4: transaction date13: payee or counterparty14: amount15: currency17: memo or note
S0001OUT2024-03-04 09:15:00Coffee Corner4.50EURCard purchase
S0002IN2024-03-05 09:15:00Example Co2500.00EURSalary March
S0003OUT2024-03-07 09:15:00Sample Landlord1234.56EURStanding order
S0004IN2024-03-11 09:15:00Example Shop15.25EURRefund
After: the same rows as a Xero file (Date,Amount,Payee,Description,Reference)
DateAmountPayeeDescriptionReference
04/03/2024-4.50Coffee CornerCard purchaseS0001
05/03/20242500.00Example CoSalary MarchS0002
07/03/2024-1234.56Sample LandlordStanding orderS0003
11/03/202415.25Example ShopRefundS0004

Do it by hand in a spreadsheet, free

These steps need no tool from this site. The cell references follow the column positions of the profile above; if your spreadsheet uses semicolons between formula arguments, replace the commas.

  1. Open the Wise CSV in a spreadsheet program through its import dialog. Set the date column (column 4) to Text so the program does not reinterpret it, and leave the amount columns as numbers.
  2. Row 1 is the header and the transactions start in row 2.
  3. Date: rewrite column D from YYYY-MM-DD HH:MM:SS to DD/MM/YYYY (2024-03-04 09:15:00 becomes 04/03/2024). In a new column, for the first transaction: =MID(D2,9,2)&"/"&MID(D2,6,2)&"/"&MID(D2,1,4) This formula reads the date by character position, so it only works while the dates are text and every date has a two-digit day and month. Fill it down.
  4. Amounts: the amount is unsigned and column C gives the direction. Look at which words your file uses there (the public sources do not list them) and adapt the text in the formula. Signed Amount: =IF(C2="OUT",-ABS(N2),ABS(N2))
  5. Text columns: fill Payee (from column 13); Description (from column 17); Reference (from column 1). Where several bank columns feed one column, join them with a separator such as " - ".
  6. Apply Xero's own rules from its help page: Only the Date and Amount fields are needed to create bank statement lines. Payee is recommended; if the payee is an existing contact, the name must match the contact name exactly to avoid duplicates.
  7. Keep only the new columns, put the header row Date,Amount,Payee,Description,Reference on top, save the sheet as a comma-separated CSV, and compare the dates, the direction of the amounts and the number of rows with your statement in Xero's import preview.

Or use the converter

Load the file, choose the Wise profile in the bank list and the target Xero, read the preview, then download. The conversion runs locally in your browser: the file is not uploaded, and only the licence key is sent for unlocking.

Paid profile. The free manual column mapper works for any bank, this one included, but the free version writes only the first 25 converted rows of a file. The 9 USD one-time licence adds the ready-made Wise profile (one of the 35 paid profiles) and removes the 25-row limit. The column table on this page is free to read and can be used to fill in the manual mapper.

Open the converter Licence terms

Where this layout comes from

No bank supplied or approved this layout. It was copied on 5 October 2026 from a public open-source importer file kept by volunteers: bank2ynab/bank2ynab, file bank2ynab/data/bank2ynab.conf

Also read: simonmichael/hledger, file examples/csv/other/Wise.rules

The lines used from the source: [Wise] Source Filename Pattern = transaction-history ; Header Rows = 1 ; Input Columns = skip,skip,skip,Date,skip,skip,skip,skip,skip,skip,skip,skip,Payee,Outflow,skip,skip,skip,skip ; comment: "Inflow and Outflow are in the same column"

The Xero rules come from the vendor's own help pages: central.xero.com/s/article/Import-a-CSV-bank-statement (named as text, not linked). The official page refuses automated fetches (HTTP 403 or a script-only page), so the rules were read from web search excerpts of that same official URL on the checked date. Re-check in a browser before relying on a detail.

Bank formats change. Banks alter their CSV exports without notice and vendors change their import rules, so this mapping can be out of date. If the preview looks wrong, use the manual column mapper.

Related pages

Wise to other apps

The Wise guides for YNAB, QuickBooks Online and Wave, in the bank list

Other international exports to Xero

All banks and apps