· 9 min read

Xero statement import: dates and duplicates

Fix Xero bank statement import errors: day and month swapped, debit and credit columns, duplicate or missing statement lines, and file limits.

A bank statement imported into Xero can go wrong in four quiet ways. The day and the month trade places. Money out arrives as money in. The same line lands twice. Or a line never lands at all, and the statement balance stops agreeing with the bank.

None of them stops the import. Each one shows up later, as a reconciliation that will not close. This guide takes them one at a time, with the fix in Xero's own screens. Every Xero behavior described here comes from Xero Central's help articles, read on September 19, 2026. Xero revises those pages, so if a screen looks different, check the article for your region.

What Xero imports, and what it recommends

Xero's manual import takes OFX, QFX, QuickBooks, QIF and CSV files. It recommends OFX where possible, and says an OFX file can be imported without changing anything in the file your bank exported. Outside Canada and the United States, Xero's help says a PDF bank statement cannot be imported at all; Xero PDF import in the UK and Australia covers what to do instead.

Three ground rules apply to every format:

  • One file per account. Xero asks for a separate file for each bank account.
  • The right role. Importing a statement needs the administrator role, or standard plus bank accounts.
  • The route. In the Accounting menu select Bank accounts, click the menu icon on the account and select Import a Statement. Add the file under File to upload, click Next, and finish with Complete import. The Review screen before that last click is where you clear the checkbox on any line you want left out.

Dates: when the day and the month swap

What Xero does. A CSV date can be written as DD/MM/YYYY, MM/DD/YYYY or YYYY/MM/DD, among a longer list of accepted formats. When a date in the file could be either DD/MM/YY, MM/DD/YY or YY/MM/DD, Xero asks you to confirm the format. It then applies your choice to the entire statement and to all future CSV bank statements. A QIF file gets the same question, through a Date Format field.

Why it goes wrong quietly. A wrong choice does not fail every row. A date such as 03/04/2026 is valid either way, so it imports as the wrong day with no warning. A day after the 12th cannot be a month, so those are the rows that give the mistake away. And because Xero keeps the choice for later CSV files, the next statement inherits it.

How to check. On the Review screen, find a line from the middle of the statement whose day is after the 12th, and read its month. Xero applies one format to the whole statement, so if that month is right, every date in the file is.

How to fix it during the import. If you are taken straight to the Review screen, click Import settings or Edit import settings to go back to the mapping screen. Click Next, and select the right format when Xero asks for the date format. This is also how you change a mapping Xero saved from an earlier CSV.

How to fix it after the import. Delete the statement and import it again:

  1. In the Accounting menu select Bank accounts, click the menu icon on the account and select Bank Statements.
  2. From Showing, select Statements, then click the date of the statement.
  3. Click Delete Entire Statement, at the bottom of its statement lines. If some lines were already reconciled, Also delete reconciled transactions for this statement removes those transactions as well.
  4. Click Delete to confirm, then import the corrected file.

A deleted statement cannot be restored, so have the file you are going to import in its place ready first.

Avoiding the question altogether. Xero's steps for an OFX file have no date format step, and every date in an OFX file is written year first (20260305), so there is nothing to choose.

Signs: money in, money out, and debit and credit columns

What Xero expects. In a CSV, income and expenses go in the same column. Income is positive and an expense is negative, written with a minus sign or in brackets: -30.00 or (30.00). Decimals take a point, never a comma, and the amount column holds numbers only. A credit card statement imports the same way, with payments positive and purchases negative.

A bank file with two money columns. Many bank exports split money into a Debit column and a Credit column. Xero wants one amount column, so combine them before you import: add a column, set each row to the credit minus the debit (=D2-C2 when debits are in column C and credits in column D), fill it down, and map that column to the amount. Delete the balance columns while you are in the file, because Xero asks for them to go (see the limits below).

A card statement in the wrong kind of account. A card statement belongs in a credit card account in Xero, and a bank statement in a bank account. Which account type to pick when you add the account by hand covers the choice.

A sign error that has already been imported is fixed the same way as a date error: delete the statement and import a corrected file.

Duplicates: the same line twice

What Xero already catches. On a CSV import, lines that match transactions already in Xero are treated as duplicates and are not imported. On an OFX, QFX, QuickBooks or QIF import, Xero recognizes transactions already imported in other files and excludes them.

Where duplicates still come from. Xero names two sources:

  • the same statement imported by hand and also delivered by a bank feed;
  • a transaction marked as reconciled by hand, whose real statement line is imported afterwards. Marking a transaction as reconciled creates a statement line of its own, so the import adds a second one.

Find them. Run the Duplicate Statement Lines report. It compares the date and amount of the statement lines in one bank account and lists potential duplicates. It leaves out partial matches, and the duplicates Xero already removed at import. The Statement Exceptions report, in the Bank Reconciliation report pack, lists every line Xero identified as a potential duplicate and whether it has been deleted.

Delete one line. On the Reconcile tab, click Options on the line, select Delete statement line, choose a reason and click Delete.

Delete several lines, or one that is already reconciled. In the Accounting menu select Bank Accounts, click the menu icon on the account and select Bank Statements. From Showing, select Statement lines, tick each line, click Delete, choose a reason and click Delete again. Deleting a reconciled line sets its account transaction back to unreconciled.

Delete a whole statement that went in twice with the steps in the dates section above.

Two things to know first. Deleting a statement line changes the account's Statement Balance, so Xero's advice is to delete a line only when it is a duplicate. And a deleted line stays on the statement and can be brought back from the same Statement lines view with Restore, whereas a deleted statement cannot.

Missing lines and a balance that does not match

What the Statement Balance is. Xero's Statement Balance is the opening bank balance plus every bank statement imported into the account. If it differs from the balance your bank shows for the same date, either the opening balance is wrong or a statement line is.

Find the day it went wrong. Xero's own method:

  1. Check the account's opening balance. It should equal the bank's closing balance for the day before you started using Xero.
  2. Find the last date the two balances agreed. Run the Bank Reconciliation Summary report a month after it and compare with the bank. Move forward a month at a time until they differ, then narrow that month down the same way.
  3. For that stretch, compare the Bank Statement report in the Bank Reconciliation report pack with your real statement, line by line, and read the Statement Exceptions report for deleted, manual and duplicate lines.

Fix what you find.

What you found The fix in Xero
A missing line Import a statement file that holds it. Where no file can be had, mark the transaction as reconciled by hand.
A duplicate line Delete it.
A line deleted by mistake Restore it.
A transaction marked as reconciled, then imported as a real line Delete the manual statement line.

Why a line never arrived. Four causes appear in Xero's own articles:

  • A zero amount. A line of 0.00 cannot be imported, because there is nothing to reconcile.
  • The wrong account. A statement in a different currency from the bank account, or an account locked until a certain date, stops the import with an error.
  • A cleared checkbox. A line unticked on the Review screen was left out on purpose, or by accident.
  • A feed that started late. Lines dated before a bank feed began are not in the feed. Xero's answer is to import them by hand from a statement file.

File limits and format errors

Xero's limit or message What to do
A CSV cannot have more than 100,000 rows Delete empty rows, or import an OFX or QIF file instead.
A timeout error Split the file: Xero asks for a file of more than 1,000 transactions to go in as several smaller ones.
"The file you uploaded does not contain valid statement data" Check the date format set in Xero, spaces before or after the dates, and blank lines. If the error returns, paste the data into Xero's own CSV template and import that.
Balance columns, the account number or empty rows in a CSV Delete them. Xero calculates the balance from the transactions.
A reference over 255 characters, or a check number over 20 The import fails. Shorten the field.
Text in the date column, or anything but numbers in the amount column Clean the column, and keep every cell in a column aligned the same way.
"File type is invalid" Upload the file again, or use another of the accepted formats.

Where a converted statement fits

If your bank exports OFX for the period you need, take it: Xero recommends it and it needs no changes. A converted statement is for the periods the bank will not export, such as older statements, closed accounts and banks that only offer the PDF.

What a conversion does about the errors above:

  • Dates come from the statement, not from a column guess. Month names are read as printed. An ambiguous numeric date, on a statement with no day above 12 and no printed period, is resolved from the transaction sequence, and where a running balance is printed, the check catches an ordering error that results. The OFX is written year first, so Xero has no date to ask about. The CSV for import writes dates in the order you choose on the workbook's Statement details sheet, day first unless the statement is in US dollars.
  • Signs are checked against the printed balance. Every row is recalculated against the running balance the bank printed beside it. A debit read as a credit breaks that chain, so it is corrected from the printed balances and shown with a note, and a row that still disagrees is flagged for review with the size of the difference.
  • One amount column, no balance columns. The CSV for import has three columns, date, description and one signed amount, which is the shape Xero names as its mandatory fields.
  • Stable identifiers. Each OFX row carries an identifier derived from the row itself, so the same statement converted twice produces the same identifiers, and re-importing a corrected file adds only what changed.
  • A closing balance to compare. After the import, read the statement balance Xero shows against the closing balance printed on the PDF. Xero's Statement Balance is the opening balance plus the statements imported, so on an account whose opening balance is zero it shows the movement rather than the closing balance.

One thing stays yours to decide: where a live bank feed already covers part of the period, end the statement the day before the feed's history begins.

Convert a statement and read the balance check before anything reaches Xero. Pages are free every day. The PDF to OFX converter page has the import steps, and import PDF bank statements into Xero covers the rest, region by region.

Convert one and see

During the launch offer ten pages a day are free, and you don't need an account to run your own statement through it.