In Xero, importing a statement creates bank statement lines: the items you then match, create or transfer on the Reconcile screen. Nothing reaches the ledger until you do that, so the CSV is a staging file. What follows reflects how Xero typically behaves; Xero Central is the authority and its wording changes.
Where to import
Open Accounting, then Bank accounts, select the account, and choose Manage Account, then Import a Statement. Upload the CSV, map each column to a Xero field, review the preview and confirm. There is an option to skip the first line when it holds column headings, and Xero typically reports how many lines were imported and how many were flagged as duplicates.
Column expectations
- Date (required). One date per row, four-digit years, one format throughout.
- Amount (required). A single column. Money in is positive and money out is negative. Plain numbers: no currency symbols, no thousands separators, no brackets.
- Payee, Description, Reference (optional). Xero uses these to suggest matches, so keep the full description rather than a truncated one.
- Anything else. Region-dependent extras such as a cheque number are optional, and columns you leave unmapped are typically ignored.
Statement line rules
You can match an imported line to a transaction already in Xero, create a new transaction from it, or record it as a transfer, but you do not edit the line itself. If a line is wrong, the remedy is to remove the imported statement and import a corrected file, which is why checking the file first matters. Reconciled lines typically stay when a statement is removed, so a mistake found after reconciling has to be undone line by line. Lines from an active bank feed land on the same Reconcile screen, which is where overlap duplicates come from.
Dates and signs
The mapping step typically asks which date format the file uses. Choose what the file really contains. The danger is silent: 03/04/2026 is valid as 3 April or as 4 March, and Xero accepts whichever you tell it. Year-first dates remove the ambiguity.
Check the sign with one number. The sum of the Amount column must equal the closing balance minus the opening balance. If it equals the negative of that, every line is inverted, and Xero will not flag it: payments simply show up as receipts.
A minimal file that satisfies all of the above looks like this:
Date,Amount,Payee,Description,Reference
2026-03-02,-84.50,Northside Power,Electricity March,INV-1182
2026-03-03,1250.00,Client payment,Invoice 2041,2041
2026-03-05,-19.99,Storage plan,Monthly subscription,If the statement opened at 5,000.00 and closed at 6,145.51, the three amounts must sum to 1,145.51. They do: −84.50 + 1,250.00 − 19.99.
Step by step: prepare the file
- Tie the statement out. Confirm opening + deposits − withdrawals = closing before you build the file. Xero will import a wrong file without complaint.
- Make one Amount column. If you have Debit and Credit, or Money in and Money out, add Amount = Credit − Debit (or In − Out) and leave the originals unmapped or delete them.
- Fix the dates. Use one format throughout, with four-digit years. If Excel shows the dates left-aligned they are text; convert them first.
- Clean the edges. Delete title rows above the column headings, totals rows, and blank rows at the bottom.
- Save as CSV. Use plain comma-separated CSV, UTF-8 if offered. An .xlsx workbook cannot be imported as a statement.
- Import one account and one period. Never mix accounts in a file. Keep to a single statement period so a failure is easy to isolate.
- Compare balances. After reconciling, compare Xero’s balance at the statement end date with the closing balance printed on the statement.
Which layouts work
| Your CSV layout | Ready for Xero? | What to do |
|---|---|---|
| Date, Amount (signed), Description | Yes | Check the sign and the dates, then import |
| Date, Debit, Credit, Balance | Usually needs conversion | Add Amount = Credit − Debit; leave Balance unmapped |
| Date, Money In, Money Out | Usually needs conversion | Add Amount = In − Out |
| Date, Amount (all positive), Type (DR or CR) | Needs conversion | Make DR negative and CR positive |
| Excel workbook (.xlsx) | No | Save as CSV first |
| Header block, totals rows, blank lines | Will fail or import junk | Keep only the column headings and the transactions |
What can go wrong
- Silent sign inversion. No error message, just payments shown as receipts. The sum check above catches it.
- Day and month swapped. When both numbers are 12 or below, any validation passes. Spot-check a date with a day above 12.
- Excel damage. Long reference numbers become 1.23E+14 and leading zeros vanish. Format the reference column as text before saving.
- Overlap with a live bank feed. Importing lines for dates a feed already covers can duplicate them. Import only the dates before the feed started.
- The wrong bank account. Lines imported into the wrong account must be removed from that account’s imported statements before you reconcile.
- Decimal commas. A European-style 1.234,56 can be read as text or as 1.23. Convert it to 1234.56 before saving.
- Split descriptions. A wrapped description that became its own row adds a phantom line with no amount or date. Merge it back before saving.
Where SheetParser fits
SheetParser converts the statement PDF, or a scan, into rows, checks opening + deposits − withdrawals against the closing balance, and exports Excel and a Xero CSV. It is a file export, not a bank-feed connection: you upload the CSV yourself. Start from the bank statement to Excel tool; 1 file a day is free up to 10 pages, and paid plans open files up to 150 pages.