What the Wise export looks like
TransferWise ID,Date,Amount,Currency,Description,Payment Reference,Running Balance,Exchange From,Exchange To,Exchange Rate,Payer Name,Payee Name,Payee Account Number,Merchant,Card Last Four Digits,Card Holder Full Name,Attachment,Note,Total fees
Wise doesn’t publish its statement CSV layout. The header above is the one open-source Wise parsers agree on, and one of them shows newer exports adding columns such as a date-and-time column and a transaction type. Look at the first row of your own file and work from the columns it actually has.
Date is written day-month-year with hyphens, like 02-09-2026, and Amount is signed, with money out negative. Both fit Xero’s CSV import as they are: DD-MM-YYYY is on Xero’s list of accepted date formats, and Xero wants income and expenses in one column. Each row also names its currency in the Currency column, and Running Balance gives the balance of that currency after the row.
Fees need care. In the sample statements we checked, a transfer’s fee appears twice: as a number in the transfer’s Total fees column and as its own row, described as charges for that transfer, with the fee as a negative amount. The fee row is the one that moves the running balance. Importing both rows is right; adding Total fees on top would count the fee twice.
Downloading it
- 1
On the Wise website, click your initials and open Statements and reports, then Statement.
- 2
Choose the currencies and the period. One statement covers up to 365 days.
- 3
Pick CSV (XLSX also works here) and download the file.
What Xero needs
- Only Date and Amount are required. Payee, Description and Reference are optional.
- Money in and money out share one Amount column: income positive, expenses negative.
- Dates in a listed format, such as DD/MM/YYYY, MM/DD/YYYY or DD-MM-YYYY.
- Delete opening and closing balance columns, the account number and empty rows.
- A header row in row 1, with a unique name for each column.
- No more than 100,000 rows per file.
From Xero’s own help pages, listed under Sources below.
Where they don’t match
Xero bank accounts hold one currency, but a Wise statement can cover several.
Make one file per currency by filtering the Currency column, and import each into the matching Xero account.
Xero asks you to delete balance columns, and Wise includes Running Balance.
Delete Running Balance, but note the last value for each currency to check the reconciliation.
The counterparty is spread across Payee Name, Payer Name and Merchant, but Xero has one Payee field.
Map Description to Description and use Payment Reference as Reference; spell payees exactly as your Xero contacts to avoid duplicates.
Many Wise columns are empty for a given period, which makes the column mapping screen longer than it needs to be.
Remove the empty columns before importing. SpreadsheetFix does this automatically.
Step by step
- 1
On the Wise website, download a CSV statement for the period, choosing the currencies you keep in Xero.
- 2
Upload it below. SpreadsheetFix removes columns that are empty in this file, rewrites the dates as DD/MM/YYYY, trims spacing and checks the amount totals.
- 3
Download the result and open it in Google Sheets, or in Excel through Data > From Text/CSV, so the dates stay as written.
- 4
Filter by Currency and save one file per currency, then delete Running Balance from each.
- 5
In Xero, open the matching bank account’s menu, choose Import a Statement and upload the file for that currency.
- 6
Assign Date to Transaction Date and Amount to Transaction Amount, and Description and Payment Reference to the fields you use. Then review the warnings and complete the import.
What SpreadsheetFix does here
A Wise statement for a quiet month can be mostly empty columns: exchange details when nothing was converted, card details when no card was used, attachments and notes no one added. SpreadsheetFix removes every column that is empty from top to bottom, so Xero’s column assignment screen shows only what the file actually contains.
The dates are rewritten as DD/MM/YYYY. Xero would accept Wise’s DD-MM-YYYY too, but one slash format across all your bank imports means Xero’s remembered date format fits every file. These are free rules, so a statement of up to 5,000 rows needs no account, and the file never leaves your browser.
Before you download, the totals check adds up Amount, Running Balance and Total fees before and after cleaning and confirms that nothing changed. When you then split the file by currency, the Amount totals per currency are what to compare with Wise’s own statement.
No file to hand?
Before and after
TransferWise ID,Date,Amount,Currency,Description,Payment Reference,Running Balance,Exchange From,Exchange To,Exchange Rate,Payer Name,Payee Name,Payee Account Number,Merchant,Card Last Four Digits,Card Holder Full Name,Attachment,Note,Total fees TRANSFER-1024551,02-09-2026,-480.00,EUR,Sent money to Atelier Roux,Invoice 2291,3120.00,,,,,Atelier Roux,FR7600000000000000000000000,,,,,,2.15 TRANSFER-1024551,02-09-2026,-2.15,EUR,Wise Charges for: TRANSFER-1024551,,3117.85,,,,,,,,,,,,0.00 TRANSFER-1031876,07-09-2026,1250.00,EUR,Received money from Northwind BV with reference INV-77,INV-77,4367.85,,,,Northwind BV,,,,,,,,0.00 TRANSFER-1033410,09-09-2026,300.00,EUR,Topped up balance,,4667.85,,,,,,,,,,,,0.00
TransferWise ID,Date,Amount,Currency,Description,Payment Reference,Running Balance,Payer Name,Payee Name,Payee Account Number,Total fees TRANSFER-1024551,02/09/2026,-480.00,EUR,Sent money to Atelier Roux,Invoice 2291,3120.00,,Atelier Roux,FR7600000000000000000000000,2.15 TRANSFER-1024551,02/09/2026,-2.15,EUR,Wise Charges for: TRANSFER-1024551,,3117.85,,,,0.00 TRANSFER-1031876,07/09/2026,1250.00,EUR,Received money from Northwind BV with reference INV-77,INV-77,4367.85,Northwind BV,,,0.00 TRANSFER-1033410,09/09/2026,300.00,EUR,Topped up balance,,4667.85,,,,0.00
Eight empty columns removed and four dates rewritten. The 2.15 fee is imported once, from its own row; Total fees on the transfer row is the same fee.
Totals check, Amount: 1,067.85 − 0.00 removed = 1,067.85
What it won’t do
- Which columns are removed depends on the file: a month with a currency conversion keeps the exchange columns. Xero asks you to assign columns again whenever the set changes, so expect that step to come back now and then.
- This page’s preset doesn’t delete the Running Balance column, which still contains data, or split the file by currency. On Pro, the Delete Columns rule drops Running Balance, and Filter Rows can keep one currency per run; otherwise both are quick edits in a spreadsheet.
- Fees are left exactly as Wise wrote them. If your file has a Total fees value but no matching charges row, add the fee yourself; the running balance tells you which case you have.
Questions
Can I import a multi-currency Wise statement into one Xero bank account?
No. Each Xero bank account has one currency, so split the Wise file by its Currency column and import each part into the Xero account for that currency.
Does Xero accept Wise’s date format?
Yes. Wise writes dates as DD-MM-YYYY, which is on Xero’s list of CSV date formats. SpreadsheetFix still rewrites them as DD/MM/YYYY so every bank file you import uses the same format.
Do I need a CSV at all?
Not always. Wise offers accounting integrations and other statement formats, and Xero recommends OFX, QFX or QuickBooks files where your bank provides them. A CSV is the fallback when neither suits, for example for a period before a connection existed.
Will the Wise fee be counted twice?
Not if you import the rows as they are and ignore the Total fees column. In the exports we checked, the fee also has its own negative row, and that row is what reduces the balance.
Sources
Xero and Wise help pages
- Xero Central: Import a bank statement in CSV format
- Wise Help: How do I download a statement?
- Wise Help: Using accounting exports with your accounting software
The Wise column layout
Wise doesn’t publish the columns of its CSV export. The header row on this page is the one these independent parsers and guides agree on. Banks change their exports without notice, so treat your own file’s first row as the authority.