SheetStatement

Xero Bank Statement Import Errors and How to Fix Them

By SheetStatement Team · · Updated · 11 min read

TL;DR: When a Xero statement import fails or looks wrong, check in this order: the file itself (real CSV or OFX, one header row, no totals), the date format chosen on import, the sign of the amounts, the account you imported into, and overlap with the bank feed or earlier imports. Imported lines that aren't reconciled can be deleted, so a bad import is usually easy to undo.

Xero's statement import is straightforward when the file is clean. When it isn't, the symptoms vary: the file is rejected, dates land in the wrong month, every expense shows as money received, or the statement balance in Xero drifts away from the bank's.

This is our troubleshooting guide, organized by symptom. For the layout Xero expects in the first place, see our Xero CSV import format guide.

Symptom: the file won't import

It isn't really a CSV. A spreadsheet saved as .xlsx and renamed won't work. Open it in Excel and save as CSV UTF-8.

There's junk above the header. Account names, statement titles or date ranges above the column headers confuse the importer. Delete everything above the header row.

There are totals or notes below the data. Delete them.

Blank rows in the middle. Remove them.

The amount column contains text. Currency symbols, thousands separators, parentheses or trailing minus signs can make amounts unreadable. Clean them to plain numbers with a leading minus.

The file is very large. Very large files can fail or time out. Split by month or statement period.

OFX file problems. If an OFX or QIF file from your bank fails, download it again (partial downloads happen), or ask your bank whether the format is compatible. As a fallback, convert to CSV.

Symptom: dates are wrong

Date problems are the most common import issue we see in Xero, especially for organizations that work with banks in other countries, or bookkeepers who serve clients in several regions.

Xero asks you to confirm the date format during import. If the file uses DD/MM/YYYY and you pick MM/DD/YYYY (or vice versa), dates up to the 12th import into the wrong month and later dates fail or look odd.

Fixes:

  1. Open the file in a text editor and see what the dates really look like. Excel may display them differently.
  2. Use one format for every row.
  3. Use four-digit years.
  4. In the import preview, check a date after the 12th.

If Excel rewrote your dates when you saved, either set the column to text before saving or reformat it explicitly with =TEXT(A2,"dd/mm/yyyy") and paste as values.

Symptom: amounts are on the wrong side

Xero reads a single Amount column: positive is money received, negative is money spent. If your file has spending as positive numbers, every expense appears as money received.

  • Bank accounts: make sure withdrawals are negative.
  • Separate Debit and Credit columns: combine into one signed column before import, or map them carefully if the importer offers separate fields.
  • Credit cards: spending on the card is money out (negative), payments to the card money in (positive). Card exports often use the opposite convention. Flip with =-A2.

After import, check one known expense and one known receipt on the reconcile screen. If they're reversed, delete the imported lines and import a corrected file.

Symptom: imported into the wrong account

Easy to do when several accounts have similar names. The lines appear under the wrong bank account and won't make sense there.

Fix: delete the imported statement lines from the wrong account (see below) and import into the correct one. Then double-check the statement balance on both accounts.

Symptom: duplicate statement lines

Duplicates come from:

  • The bank feed already covering the dates you imported.
  • Importing the same file twice.
  • Overlapping date ranges in two files.

Xero may warn about possible duplicates during import, but CSV files have no transaction IDs, so it can't always tell. OFX files help because they include IDs.

Fix: delete the duplicate lines (unreconciled lines can be deleted). Then prevent repeats: set a cutoff date between imports and the feed, import one statement period per file, and keep a log of what you've imported for each account.

Symptom: statement balance doesn't match the bank

On the bank account in Xero, you'll see a statement balance (the balance according to imported and fed statement lines) and a balance in Xero (according to reconciled transactions). If the statement balance doesn't match your actual bank statement, something about the lines is off.

Check:

  1. Opening balance. Does the account's starting statement balance match the bank's balance before your first imported line?
  2. Completeness of the file. Opening balance + sum of amounts should equal the statement's closing balance. If not, the file is missing rows. Our balance checker helps here, and converting PDFs with SheetStatement's Xero converter includes this check automatically.
  3. Duplicates. See above.
  4. Lines imported into the wrong account.
  5. Signs.

If you're still stuck, our guide to finding reconciliation discrepancies applies equally to Xero.

How to delete imported statement lines

Xero lets you remove imported statement lines that haven't been reconciled. In general terms: open the bank account, go to the area that lists bank statements (often under the account's manage menu), find the imported statement, and choose to delete it or select individual lines to remove. Reconciled lines need to be unreconciled first, which removes the link to the transaction; take care, because that affects your reconciliation history.

Because unreconciled lines are easy to remove, our advice is to check a sample of lines straight after every import, before reconciling anything. If something's wrong, delete and re-import. It takes a minute.

Symptom: payees and descriptions are useless

Lines show up as "POS 4471" or a long processor reference, and Xero can't suggest matches. That's not an error, but it makes reconciliation slow.

Fix: populate the Payee column with clean names for recurring suppliers and customers before importing, and keep the original bank text in Description. Then create bank rules keyed on the payee. From the second month onward, reconciliation gets much quicker.

Symptom: references and check numbers look wrong

Long reference numbers sometimes arrive in Xero as something like 4.5E+11, or lose their leading zeros. That's Excel converting them to numbers when the file was opened and saved. Xero then imports exactly what's in the file.

Fix: in Excel, format the reference column as Text before pasting or entering data, or use Data > From Text/CSV and set the column type to Text when opening the file. If the damage is already done, go back to the original bank file or converter output; you can't reliably recover digits Excel has rounded away. This matters because references are often how you match payments to invoices.

Symptom: special characters are garbled

Merchant names with accents or symbols show up as strange sequences like "Café." The file was saved in one encoding and read in another. Save as CSV UTF-8 from Excel and import again. If the file came from a bank and is already garbled, try opening it with Data > From Text/CSV and choosing the correct file origin (encoding) before saving it as UTF-8.

Symptom: foreign currency account problems

If you import into a foreign currency bank account, the amounts must be in that account's currency, exactly as the bank statement shows them. Converting them to your base currency first breaks reconciliation. Let Xero handle the conversion.

Symptom: lines before the conversion date

If you import statement lines dated before your Xero conversion date, they can create confusion because opening balances should already include that history. Check with whoever manages the organization before importing pre-conversion periods.

Why imports go wrong in the first place

It helps to understand where bad files come from, because the cause is usually upstream of Xero.

Bank exports change. Banks update their online banking from time to time, and the CSV they produce can change with it: a new column, a different date format, a header row that wasn't there before. A process that worked for a year can suddenly fail. When an import that used to work stops working, compare this month's file with last month's in a text editor. The difference is usually obvious.

Spreadsheets "help." Opening a CSV in Excel and saving it again can rewrite dates, drop leading zeros from references, convert long numbers to scientific notation and change the encoding. If you need to edit a CSV, either edit it in a text editor or be deliberate about formats when saving from Excel.

Copy and paste from PDFs. Pasting statement text into a spreadsheet merges columns, splits descriptions across rows and turns amounts into text. Files built this way fail in all the ways listed above. Converting the PDF with a statement converter avoids it, and also tells you whether the data is complete.

Different people, different habits. When several people prepare import files, each tends to do it slightly differently. A short written standard (columns, date format, sign convention, file naming) keeps everyone consistent.

Reconciling after a fixed import

Once the import is right, reconciliation should be routine. A few tips specific to recovering from a bad import:

  • Re-check bank rules. If rules fired on bad lines (for example, lines with flipped signs), they may have created transactions you don't want. Check the account transactions for the period after deleting the bad lines.
  • Look for orphaned transactions. If you reconciled some bad lines before noticing the problem and then unreconciled and deleted them, the transactions you created during reconciliation may still exist in the books without a statement line. Find and delete or re-match them.
  • Compare the period's totals with the statement. Money in and money out for the month in Xero should equal the statement's deposit and withdrawal totals.

Bank feed versus imports: choosing a boundary

If an account has a feed, the cleanest setup is a single boundary date per account. Before it, imported statements. On and after it, the feed. Record that date somewhere everyone can see it, such as an import log or a note on the account. Most duplicate problems we see in Xero trace back to that boundary being fuzzy or undocumented, particularly when a feed was disconnected and reconnected and quietly re-downloaded history.

A troubleshooting checklist

  1. Is it a real CSV/OFX? One header row, no junk, no totals?
  2. Are dates in one format, and did you pick that format on import?
  3. Are amounts plain numbers with correct signs?
  4. Are you importing into the right account?
  5. Does the file overlap with the feed or a previous import?
  6. Does opening balance + sum of amounts equal the statement closing balance?
  7. Did you check a sample of lines before reconciling?

A worked example

A bookkeeper imports March for a client's business account. Xero's statement balance afterwards is 2,940.00 higher than the bank's.

  1. Signs? A known rent payment shows as spent. Fine.
  2. Overlap? The bank feed started March 20. The CSV covers March 1–31. Lines from March 20–31 are duplicated.
  3. Check the amount. The sum of the CSV lines dated March 20–31 is 2,940.00. That's the difference.
  4. Fix. She deletes the imported lines dated March 20 onward (none were reconciled yet).
  5. Verify. Statement balance now matches the bank's March 31 balance.
  6. Prevent. The import log notes "feed from March 20" for this account.

Ten minutes, start to finish, because the lines weren't reconciled yet. Had she reconciled March first and spotted the problem a month later, the cleanup would have meant unreconciling twelve days of lines, checking which transactions they'd created, and redoing the work. That's the whole argument for checking the statement balance immediately after every import.

Our take

Most Xero import problems are visible within a minute of importing, if you look. Check dates, signs and the account straight away, compare the statement balance with the bank's, and only then start reconciling. Clean files with good payee text prevent most issues in the first place.

Edge cases that confuse Xero imports

Statement lines already exist. Xero may warn about or skip lines it believes are already in the account. If you import a file that overlaps a bank feed, you can end up with duplicates that Xero didn't catch, because the feed lines have different references. Import only dates not covered by the feed.

Deleted statement lines come back. If you delete imported statement lines and re-import, check whether the old lines were fully removed first. Partial deletion followed by a full re-import is a common way to create duplicates.

The bank account's currency doesn't match the file. Xero imports statement lines in the bank account's currency. If you've got a foreign currency account, import that account's statement only, in its own currency.

The opening balance on the bank reconciliation looks wrong. Xero's statement balance is built from imported lines. If you started importing mid-statement or skipped a period, the balance in Xero won't match the bank. Our guide to opening balance mismatches covers the fix.

Large files. Very large imports are harder to check. Split by statement period.

A second worked example: fixing a half-imported file

A bookkeeper's import stopped partway, leaving 63 of 140 lines in Xero. Rather than try to import "the rest", she deleted the 63 imported statement lines, fixed the problem row (a date written as "31/06/2026", which doesn't exist; the PDF said 30 June), and imported the full corrected file. The statement balance in Xero then matched the PDF's closing balance. Partial imports are much harder to complete than to redo.

Mini checklist before importing into Xero

  1. The file matches one of Xero's accepted layouts.
  2. All dates are real calendar dates in one format.
  3. Amounts are plain numbers with the right signs.
  4. No overlap with feed or previous imports.
  5. Statement totals verified before upload.
  6. After import, Xero's statement balance equals the statement.

FAQ

Why won't Xero accept my bank statement CSV?

Common causes are a non-CSV file, extra rows above the header, totals or blank rows, amounts with currency symbols or parentheses, or a very large file. Clean the file and try again.

Why are my dates wrong after importing into Xero?

The date format selected on import doesn't match the file, so day and month are swapped. Check the file's real format in a text editor and choose the matching option.

Why do my expenses show as money received?

Xero reads positive amounts as money received and negative as money spent. Make spending negative in the Amount column, and flip card exports if they use the opposite convention.

Can I delete an imported bank statement in Xero?

Yes. Unreconciled imported statement lines can be deleted from the bank account's statements area. Reconciled lines must be unreconciled first.

How do I avoid duplicates in Xero?

Set a cutoff date between imports and the bank feed, import one statement period per file, keep an import log, and prefer OFX files when importing your bank's own downloads.

Why doesn't Xero's statement balance match my bank?

Check the opening balance, the completeness of the imported file, duplicates, signs and whether lines went into the wrong account.

Skip the retyping

Upload a PDF or scanned statement and download a balance-checked Excel, CSV, QuickBooks or Xero file. Try the converter free.

Related articles

Convert your first statement free

3 pages a month on the free plan. No credit card.