Xero bank statement import errors (and how to fix them)
Xero's statement import fails in two ways. The loud way is an error message such as "The file you uploaded does not contain valid statement data". The quiet way is worse: the import works, but the day and month have swapped, a refund came in as a charge, or a line went missing, and you only find out when the account won't reconcile. This guide covers both, with every error message Xero documents, what causes it, and the fix in Xero's own screens.
- What Xero can import (and the ground rules)
- Error messages and symptoms: cause and fix
- A CSV layout that imports cleanly
- Dates: wrong month, swapped day and month
- Signs: money in vs money out, and credit cards
- Duplicates and missing lines
- Undo a bad import: delete a statement or a line
- When the statement balance doesn't match the bank
- PDF import in the US and Canada
- Reconcile period won't close
- Pre-import checklist
- FAQ
What Xero can import (and the ground rules)
- Formats: OFX, QFX, QuickBooks (.qbo), QIF and CSV. Xero recommends OFX where your bank offers it, because the bank's export imports without any changes. Xero's steps for OFX and QFX files have no column-mapping or date-format step.
- PDF: only in Xero organizations in the US and Canada, and not on the Xero Ledger plan. Everywhere else, Xero's help says PDF statements can't be imported. Details and file requirements are below.
- One file per account. Xero asks for a separate file for each bank account, and the file has to suit that account. Xero's error list includes a statement currency that doesn't match the account's, and an account locked until a certain date.
- Permissions: you need the administrator or standard + bank accounts user role (Xero also allows the cashbook client role for PDF import).
- The route is the same for every format: Accounting menu → Bank accounts → the account's menu icon (⋮) → Import a Statement → choose the file → Next → map columns and pick the date format if asked → review → Complete import.
An import only creates statement lines. You still reconcile them to transactions afterwards (unless you use a precoded CSV, covered in the table below).
Error messages and symptoms: cause and fix
The first group is the messages from Xero's troubleshooting article. The second group has no error message at all, which is why they cost the most time.
| You see | Cause | Fix |
|---|---|---|
| "The file you uploaded does not contain valid statement data. Please check the file" | The date format set in Xero isn't the one in the file, there are spaces before or after the dates, the file has blank lines, the data isn't prepared correctly, or the file is corrupt. | Trim the date column, delete blank rows (including trailing ones at the end), check the date format, save and re-import. If it fails again, download Xero's CSV template, paste your data into it and import that file instead. |
| Timeout error | Too many transactions for one import. | Split any file with more than 1,000 transactions into smaller files. A precoded file may need even smaller batches. Splitting by statement month also keeps each file matched to one statement you can check. |
| "There was a problem importing the file" | A column has data in the wrong format (text in the date column, anything but numbers in the amount column) or mixed alignment, or a field is too long: Reference over 255 characters, or cheque number over 20. | Clean the column so it holds one kind of data, aligned the same way. Shorten long references. If your column headers or date format changed since the last import, edit the statement import options when you import. |
| Data doesn't match | A column is assigned to the wrong Xero field (for example Transaction Date mapped to the Payee column), or one value is invalid, such as an impossible date. | Reassign the columns on the mapping step. If the mapping is right, find and fix the bad value in the file. |
| File type is invalid | Xero couldn't read the upload as the format it claims to be. | Upload it again. If it still fails, use another accepted format (OFX or QIF instead of CSV, and so on). |
| Transactional errors | Some lines are invalid. A $0.00 line, for example, can't be imported because there's nothing to reconcile. | Review the flagged lines on the Review screen and untick them, then complete the import. |
| No transactions selected | Every checkbox on the Review screen is cleared. | Tick at least one transaction. |
| Error completing an OFX/QFX import | The statement currency doesn't match the bank account's currency, or the account is locked until a certain date. | Check you're importing into the right account and that the statement dates fall after any lock date. |
| No date format selected (QIF or QuickBooks file) | Xero asked which date format the file uses and nothing was chosen. | Pick the format in the Date Format field. |
| CSV over 100,000 rows | Xero can't import a CSV with more than 100,000 rows. Empty rows count, which is why Xero tells you to delete them. | Delete the empty rows, or import OFX or QIF instead. |
| No error message, but something's wrong | ||
| Dates in the wrong month, or 3 April showing as 4 March | The wrong date format was chosen, and Xero applies that choice to the whole statement and to future CSV imports. | Delete the statement, re-import, and choose the right format. How to check. |
| Deposits showing as payments (or the reverse) | The amount signs are flipped, or a Debit/Credit pair was mapped as if it were one column. | Make one signed Amount column: money in positive, money out negative. Delete and re-import. Details. |
| Fewer lines imported than the file has | Lines matching ones already in Xero are treated as duplicates and skipped. Unticked lines and $0.00 lines are left out too. | Expected if the period overlaps what's already there. Otherwise compare against the statement. Details. |
| The same transaction twice | The same period came in by feed and by file, or a transaction was marked as reconciled by hand and then its real line was imported. | Run the Duplicate Statement Lines report and delete the extra line. Details. |
| Statement Balance doesn't match the bank | The opening balance is wrong, or a statement line is missing, duplicated, deleted by mistake, or was created by "mark as reconciled". | Follow Xero's month-by-month method. Details. |
| Precoded CSV created statement lines but no transactions | A mandatory precoded field is missing. Precoded files need Date, Amount, Account code and Tax Rate (display name). | Create the transactions during reconciliation, or delete the statement and re-import with the missing fields. Don't precode lines that match existing invoices or bills: Xero warns that this introduces errors. |
| Duplicate contacts appearing | Payee names in the file don't exactly match the contact names already in Xero. | Make payees match existing contact names exactly, or leave Payee blank and use Description. |
A CSV layout that imports cleanly
Xero only needs Date and Amount, but Payee, Description and Reference make reconciling much faster. This is a bank account statement in Xero's template layout:
*Date,*Amount,Payee,Description,Reference
02/03/2026,4250.00,Brightline Studio,Invoice 1042 payment,INV-1042
04/03/2026,-89.99,Adobe,Creative Cloud subscription,
14/03/2026,-1850.00,Parkside Properties,March rent,Check 2215
21/03/2026,-36.40,Shell,Fuel,
28/03/2026,(1200.00),Mercury Transfer,To savings,
31/03/2026,2.17,,Interest paid,
- Header row in row 1, with a unique name for each column. Xero can import without headings, but mapping is easier with them. The template you download from the Import a Statement screen is regional: its file name and headings follow your browser's language, defaulting to New Zealand English, so they may differ slightly from the above.
- One Amount column, income positive and expenses negative, written as
-30.00or(30.00). Use a point for decimals, never a comma, and no currency symbols. - One date format for the whole file. The example uses DD/MM/YYYY and includes days after the 12th, which makes a wrong format choice obvious on the Review screen.
- Delete balance columns (Xero works out the balance from the transactions), the account number, summary rows and empty rows.
- Save as .csv, one file per account.
Two spreadsheet traps cause many "valid statement data" errors. Opening a bank CSV in Excel can quietly convert dates to your computer's regional format, so the file you save isn't the one the bank gave you. And on computers set to use a comma as the decimal separator, Excel can save "CSV" files with semicolons between fields. If an edited file fails but the original didn't, open both in a text editor and compare.
Dates: wrong month, swapped day and month
Xero accepts DD/MM/YYYY, MM/DD/YYYY and YYYY/MM/DD, plus DD/MM/YY, MM/DD/YY, DD/MMM/YY, DD/MMM/YYYY, DD MM YY, DD-MM-YYYY, DD.MM.YYYY and DDMMYYYY. When a date in the file could be read more than one way, Xero asks you to confirm the format. It then applies your answer to the entire statement and to all future CSV statements.
That's why this error is quiet. A date like 03/04/2026 is valid either way, so it imports as the wrong day with no warning. Only days after the 12th can't be a month, and those rows are the giveaway.
- Check before you click Complete import. On the Review screen, find a line whose day is after the 12th and read its month. Xero applies one format to the whole file, so if that line is right, they all are.
- If it's wrong after import, delete the statement and import the file again, choosing the other format.
- Watch the next import. Because the choice carries forward, a US bank file (MM/DD) imported after a DD/MM file can inherit the wrong format. If headers or the date format changed, edit the statement import options as you import.
- Avoid the question altogether with OFX or QFX: Xero's steps for those formats have no date-format step, and OFX dates are written year first.
Signs: money in vs money out, and credit cards
Xero wants income and expenses in the same column. Many bank exports split them into Debit and Credit columns instead. Combine them before importing: add a column with =D2-C2 (credit minus debit, if debits are in C and credits in D), fill it down, paste it back as values, and map that column to Amount.
Credit card statements use the same import, into a credit card account in Xero. In the CSV, payments are positive and purchases negative, which is the opposite of how most card statements print them (issuers show payments as negatives or "CR" because they reduce what you owe). Flip the whole column, not individual rows.
A sign error that's already imported is fixed like a date error: delete the statement and import a corrected file.
Duplicates and missing lines
What Xero already catches
On a CSV or PDF import, lines matching transactions already in Xero are treated as duplicates and aren't imported. For OFX, QFX, QuickBooks and QIF files, Xero recognises transactions already imported in other files and excludes them. So "fewer lines than expected" is often correct, for example when a new file overlaps last month's.
Where real duplicates come from
- Feed plus file. Manual import is meant for periods the feed doesn't cover, such as lines dated before the feed started. Import only those dates. When a feed starts on an account you've been importing manually, Xero tells you to check for missing or duplicate transactions.
- Mark as reconciled, then import. Marking a transaction as reconciled creates its own statement line (Bank Transaction Source: User). Import the real line later and you have two. Delete the one marked User. Xero says to mark as reconciled only when you can't import the original data.
Find them
Reporting → All reports → Duplicate Statement Lines. Choose the account and a date range. The report looks for lines with the same date and amount, then for an exact match across reference, particulars or payee. It doesn't show partial matches, or the duplicates Xero already removed at import; those appear on the Statement Exceptions report in the Bank Reconciliation report pack.
Missing lines
Missing lines usually mean a line was unticked on the Review screen, was a $0.00 line, sits in a period the feed never covered, or never made it into the file. That last one is common when the CSV was built from a PDF: page breaks, a separate "Checks paid" section or a fee line in a summary box are easy to drop. Import a file that contains the missing lines. If you have only a few, Xero suggests creating the transactions and marking them as reconciled instead.
Undo a bad import: delete a statement or a line
Delete an entire statement
Use this when you imported the wrong file, the same statement twice, or a file with swapped dates or flipped signs.
- Accounting → Bank accounts → the account's menu icon → Bank Statements.
- From Showing, select Statements, then click the date of the statement.
- Click Delete Entire Statement at the bottom of the list. Optionally tick Also delete reconciled transactions for this statement. If that option isn't offered, delete those account transactions separately.
- Click Delete.
Deleted statements can't be restored. Have the corrected file ready before you delete.
Delete or restore single lines
- One line: on the Reconcile tab, Options → Delete statement line, choose a reason, Delete.
- Several lines, or a reconciled one: Bank Statements → Showing → Statement lines, tick them, Delete, choose a reason, Delete. Deleting a reconciled line sets its account transaction back to unreconciled.
- Restore: same Statement lines view, tick the deleted line, Restore. Lines are never permanently deleted, unlike whole statements.
Deleting a line changes the account's Statement Balance, so Xero's advice is to delete a line only when it's a duplicate. If it's reconciled to the wrong transaction, unreconcile it instead.
When the statement balance doesn't match the bank
Xero shows two balances for each bank account, and they mean different things:
- Statement Balance = opening balance + every statement line imported (by feed or file). This should equal the bank's balance on the date shown.
- Balance in Xero = opening balance + the account transactions you've entered. This is what reports and the balance sheet use.
Fix the Statement Balance first. If it differs from the bank for the same date, either the opening balance is wrong or a statement line is. Xero's method:
- Check the opening balance. It should equal the bank's closing balance for the day before you started using Xero, with conversion balances confirmed and saved, and uncleared funds from your old system in a suspense account rather than in the opening balance.
- Find the last date they agreed. Run the Bank Reconciliation Summary report one month after it and compare with the bank. Move a month at a time until they differ, then narrow down inside that month.
- Compare line by line for that stretch: the Bank Statement report (Bank Reconciliation report pack) against the real statement. Then read Statement Exceptions for deleted, manual and duplicate lines.
- Fix what you find: import a file for a missing line, delete a duplicate, restore a line deleted by mistake, or delete a manual line whose real line was imported later.
Once the Statement Balance matches the bank, reconcile every line. A remaining gap between Statement Balance and Balance in Xero then points to transactions in Xero with no statement line yet (fine if they're future-dated or their statement lines haven't been imported yet) or to duplicate transactions created during reconciliation, which you remove with Remove & Redo.
Faster on a multi-month import: check each file before it goes in. For each statement, opening balance + SUM(Amount) = closing balance must hold to the cent (for a card, with Xero's signs, the opening and closing balances are negative). A file that ties out can't be missing or doubling a line, so any later difference is inside Xero, not in the import.
PDF import in the US and Canada
Xero organizations in the US and Canada can import a PDF statement through the same Import a Statement screen. Xero lists banks it has validated (including Chase, Bank of America, Wells Fargo, Capital One, Amex, Citibank and Mercury) and accepts others with accuracy that "might vary". Per Xero, the PDF must:
- be 35 MB or less, up to 100 pages per statement, and no larger than 40 inches (2,880 points) high or wide
- have a resolution of at least 200 DPI and, if scanned, be scanned straight (crooked or slanted scans can error)
- be in English, be a debit or credit statement, and not be password protected
Xero recommends OFX over PDF when your bank offers it, and a PDF downloaded from the bank over a scan. On the Review screen, lines with warnings are still imported, and lines with errors aren't. Xero's advice for those is to complete the import, then bring in the remaining transactions with a different file type. That's where a balance check matters: check the imported total against the statement before you reconcile.
Reconcile period won't close
The Reconcile period tab compares a statement's opening and closing balances with what's in Xero, then locks the period.
- You can't close a period until the balances match and every transaction in it is reconciled. Reconcile all the period's lines on the Reconcile tab first.
- Credit card balances go in as negatives, with the minus sign (for example -200). Entering a card's balance as positive guarantees a difference.
- Work in date order. Xero recommends closing periods chronologically, and fills in the next period's start date and opening balance when you close one.
- "Outstanding" transactions are account transactions dated in the period with no statement line. Reconcile them on the Reconcile tab, or mark them as reconciled if the statement line really is missing.
- Need to change a closed period? Edit it to move it back to draft. A closed period blocks deleting or unreconciling its transactions, though account codes can still be changed.
Pre-import checklist
- Use OFX, QFX or a QuickBooks file if the bank offers one for this period.
- One file per account, in the account's currency, dated after any lock date.
- If a feed is connected, the file ends the day before the feed's first line.
- Header row in row 1, unique column names, Date and Amount present.
- One signed Amount column (money in positive). Cards: payments positive, purchases negative.
- No balance columns, account numbers, summary rows, blank rows or $0.00 lines.
- One date format throughout, with no spaces around dates. You know which format it is.
- Points for decimals, no currency symbols, references ≤255 characters, cheque numbers ≤20.
- 1,000 transactions or fewer per file (split by month).
- The file ties out: opening + SUM(Amount) = closing, to the cent.
- On the Review screen, a day after the 12th shows the right month and the line count is what you expect.
Have only PDFs? Get a Xero file that's already checked
Utilly converts bank and credit card PDF statements (Chase, Bank of America, Wells Fargo, Capital One, Mercury, Amex, Citi and more) into a Xero CSV with one signed Amount column and no balance columns, and shows whether each statement balances to its closing or New Balance before you download. Useful for card statements, statements older than your bank's download window, and catch-up work across many months. The Xero CSV uses DD/MM/YYYY dates, so choose that if Xero asks. Preview free with no sign-up.
Convert statements to Xero Credit card statements to XeroRelated: our catch-up bookkeeping guide covers getting a year of statements into Xero and reconciled in order, and QBO vs IIF vs QIF explains which file format each program wants.
Sources: Xero Central help articles on CSV, precoded CSV, OFX/QFX/QuickBooks, QIF and PDF statement import, resolving manual import errors, deleting statements and statement lines, the Duplicate Statement Lines report, Statement Balance vs Balance in Xero, comparing the statement balance to your bank, missing transactions, marking transactions as reconciled, and Reconcile a period, read October 18, 2026. Xero updates these pages; if a screen differs, check the current article for your region.
FAQ
Why does Xero say my file doesn't contain valid statement data?
Xero lists five causes: the date format set in Xero doesn't match the file, there are spaces before or after the dates, the file has blank lines, the data isn't prepared correctly, or the file is corrupt. Clean the file and re-import. If it fails again, paste the data into Xero's CSV template and import that.
Can Xero import a PDF bank statement?
Only in Xero organizations in the US and Canada, and not on the Xero Ledger plan. The PDF must be 35 MB or less, 100 pages or fewer, at least 200 DPI, in English and not password protected. Elsewhere, Xero says to export OFX, QIF or CSV from online banking or convert the PDF.
Why are the dates wrong after importing a CSV into Xero?
The wrong date format was chosen. When a date could be read more than one way, Xero asks which format the file uses and applies the answer to the whole statement and to future CSV imports. Check a line whose day is after the 12th on the Review screen. If it's already imported, delete the statement and import it again.
How do I undo a bank statement import in Xero?
Open the account's Bank Statements, choose Showing → Statements, click the statement's date and use Delete Entire Statement. Deleted statements can't be restored, so have the corrected file ready. Single statement lines can be deleted and later restored from the Statement lines view.
How many transactions can I import into Xero at once?
A CSV can't have more than 100,000 rows, but Xero says to split any file with more than 1,000 transactions if you get a timeout error, and precoded files may need smaller batches. Importing one statement month per file is the easiest way to stay under it.
Should credit card amounts be positive or negative in a Xero CSV?
Payments are positive and purchases are negative, in one Amount column. When you reconcile a period for a credit card account, enter the opening and closing balances as negative numbers, for example -200.
Related guides
- How to import bank transactions into QuickBooks Desktop after bank feeds stopped (2026)
- How to convert a credit card statement PDF to Excel
- QBO vs IIF vs QIF: which file QuickBooks and Quicken actually need
- Catch-up bookkeeping: getting 12 months of bank statements into QuickBooks or Xero and reconciled