Founding offer: 40% off the first payment on selected apps with code FOUNDING40, until 30 November 2026.40% off selected apps’ first payment: FOUNDING40 until 30 Nov. See founding prices

Xero bank statement CSV format: required columns, date format, amount signs and why Xero rejects the file

A Xero bank statement CSV needs only two fields, Date and Amount, with income and expenses in the same Amount column and the date in a format Xero lists. For its "no valid statement data" error, Xero Central names a wrong date format, spaces in the date column and blank lines as causes.

Everything below follows Xero Central's articles on importing and fixing CSV bank statements, checked on 13 November 2026. Where Xero Central gives two different figures, both are shown.

Which columns does the CSV need?

Xero Central says you only need the Date and Amount fields to create bank statement lines. More detail makes reconciling easier, so the template also has these:

  • Date (required).
  • Amount (required). Income and expenses go in this one column.
  • Payee (recommended). If the payee is an existing contact in Xero, the name must match the contact name exactly, or you can end up with duplicate contacts.
  • Description. It appears under Particulars in the Bank statements tab of the bank account.
  • Reference and Cheque number.
  • Optional extra columns: Analysis code and Transaction Type.

A file can be imported without headings, but mapping is easier with them. Put the header row in row 1 and keep each column name unique.

Step 1: get the file into the right shape

  1. Start from the bank's CSV or Xero's template. Download the transactions for each bank account separately and save each as .csv. To use the template, go to Accounting > Bank accounts, click the menu icon for the account, select Import a Statement and click the link to download the Xero CSV template. The template is regional: its file name and column headings follow the language set in your web browser, and if that cannot be determined it defaults to New Zealand English.
  2. Delete what Xero does not want. Remove columns with opening and closing balances, because Xero calculates the bank balance from the transactions. Remove the bank account number if it appears in the file, and remove empty rows.
  3. Fix the Amount column. Show income as a positive amount and expenses as a negative amount, using a minus sign in front or brackets, for example -30.00 or (30.00). Xero says not to use commas to show decimal places. For a credit card account, payments are positive and purchases are negative. If your bank gives separate debit and credit columns, they have to become one column, because Xero Central says both must be in the same one.
  4. Fix the Date column. Use one of the formats below for every date.

Which date formats does Xero accept?

Xero Central lists three formats to use first:

  • DD/MM/YYYY, for example 15/01/2023
  • MM/DD/YYYY, for example 01/15/2023
  • YYYY/MM/DD, for example 2023/01/15

It also lists DD/MM/YY, MM/DD/YY, DD/MMM/YY (15/JAN/23), DD/MMM/YYYY (15/JAN/2023), DD MM YY with spaces, DD-MM-YYYY with hyphens, DD.MM.YYYY with periods and DDMMYYYY with no separators. If a date could be read as DD/MM/YY, MM/DD/YY or YY/MM/DD, Xero asks you to confirm the format, and applies your choice to the whole statement and to all future CSV bank statements. A wrong choice therefore carries over, so look at a few dates on the review screen before you finish.

Step 2: import the file

You need the administrator or standard + bank accounts user role.

  1. In the Accounting menu, select Bank accounts.
  2. For the account, click the menu icon and select Import a Statement.
  3. Drag in the file or click Select file, then Next.
  4. If asked, assign each column to a bank statement field, then Next. The Transaction Date and Transaction Amount fields must be assigned to columns of your file.
  5. If asked, pick the date format, then Next.
  6. On the review screen, clear the checkbox next to any line you do not want, then click Complete import.

The review screen groups lines as ready to import, with warnings, or with errors that stop them being imported. Lines that match ones already in Xero are treated as duplicates and are not imported. After the first successful CSV import Xero saves your column mapping and reuses it while the column headers stay the same. If the headers differ, it asks again. To change a saved mapping, import a new file and click Import settings at the top of the screen.

Why Xero rejects the file

These are the reasons in Xero Central's article on errors when importing a bank statement. We list nothing that the article does not say.

  • "The file you uploaded does not contain valid statement data. Please check the file." Xero names these causes: the date format set in Xero is not correct, leading or trailing spaces in the date column, blank lines, data that is not prepared correctly, or a corrupt file. Prepare the data again, save and re-import. If the same error comes back, copy the data into Xero's template, save it and import that.
  • "There was a problem importing the file." A column has data in the wrong format or alignment. The date column must contain only dates and the amount column only numbers, and all data in a column should be aligned the same way. If you changed the date format or column headers, edit the statement import options. Two fields also have limits: Reference is 255 characters and Cheque number is 20, and going over either makes the import fail.
  • Data does not match. A column is assigned to the wrong field, for example Transaction Date pointed at the Payee column, or a value in a column is wrong, such as an invalid date. Fix the assignment or the file and import again.
  • Transactional errors. Some lines can be treated as invalid and cannot be imported. Xero's example is a $0.00 transaction, since there is nothing to reconcile.
  • No transactions selected. You must select at least one line to complete the import.
  • File type is invalid. Upload the CSV again, or use OFX or QIF.
  • Timeout error. This usually means the file has more transactions than Xero can import at one time. Split it into smaller batches.

Two size limits. The CSV import article says you cannot import a CSV file with more than 100,000 rows. The errors article says to split a file that contains more than 1,000 bank transactions, and that precoded transactions may need even smaller batches. Xero Central does not explain how the two figures fit together, so split a large file at 1,000 transactions.

Wrong sign, no error. A file can import and still show money in as money out. A Xero Product Ideas request, Manual import: option to reverse Credits and Debits columns, was shared on 17 January 2023 and had 10 votes when we checked. The poster says reversed signs are especially common with credit cards and that Xero's suggested fix is to edit the file in a spreadsheet. Comments dated 14 November 2025 and 19 March 2026 say statements still import the wrong way round. Check the signs on the review screen before you complete the import.

What if you only have a PDF?

Xero Central says PDF bank statements cannot be imported, and recommends OFX, QFX or QuickBooks files from online banking where you can get them, since an OFX file can be imported without changes. A Xero Product Ideas request for turning a PDF statement into a CSV, Hubdoc: convert bank statement to CSV file, has 305 votes. On 26 June 2026 Xero's community manager wrote that no work is planned for it. The reply adds that PDF statement conversion was introduced in limited regions.

Without a bank export, you can retype the lines into Xero's template, or use a conversion tool.

Option: check the file with Atesen Software's tools

Atesen Software publishes this guide and makes these tools; the steps above work without them.

The PDF to CSV page reads a text-based PDF statement in your browser, checks every line against the balances printed on it, and gives a CSV in the layout Xero asks for. The page says the columns, signs and date formats follow Xero's help page, and that Xero shows you the lines before anything is imported. On the free plan you see every line and the balance check on screen, and you can download the first 20 lines as CSV without signing up. It does not read scans or photos.

Recondiff compares a bank CSV with a ledger CSV, such as a Xero Account Transactions export, and shows what differs. Both files stay in your browser, and the free preview covers the first 50 rows of each file. It is useful after an import when lines seem to be missing, for instance zero-amount lines or lines Xero treated as duplicates.

Convert a PDF free Compare two files free

Atesen Software is independent. Xero is a trademark of Xero Limited, and this page is not affiliated with or endorsed by Xero. The statements from Xero Central and Xero Product Ideas were checked on 13 November 2026. Menus and options can change.

Questions about this guide: support@atesensoftware.com.

Questions people ask

What columns does a Xero bank statement CSV need?

Date and Amount. Payee, Description, Reference and Cheque number are optional, and so are the extra Analysis code and Transaction Type columns. Put the header row in row 1 and keep the column names unique.

What date format does Xero accept in a CSV bank statement?

DD/MM/YYYY, MM/DD/YYYY and YYYY/MM/DD are the main ones, and Xero Central lists several more, including formats with hyphens, periods, spaces and month abbreviations. If a date could be read more than one way, Xero asks you to confirm the format.

Should expenses be negative in a Xero bank statement CSV?

Yes. Income and expenses share one Amount column, with income positive and expenses negative, written with a minus sign or in brackets. On a credit card file, payments are positive and purchases are negative. Do not use commas to show decimal places.

Why does Xero say the file does not contain valid statement data?

Xero Central lists a wrong date format, leading or trailing spaces in the date column, blank lines, badly prepared data or a corrupt file. Prepare the data again and re-import it. If the error returns, paste the data into Xero's bank statement template and import that.