SimpleBankConvertSimpleBankConvert home

Xero Bank Statement Import Limit: Split Big Files

By SimpleBankConvertPublished November 13, 2024Updated November 13, 2024

The Xero bank statement import limit that most people hit is about 1,000 transactions per file: above that, Xero tells you to split the file. A CSV can never exceed 100,000 rows, and a PDF statement must be 35MB or less and 100 pages or fewer. Split big statements by date into files under 1,000 lines each.

The 1,000-transaction mark in Xero statement imports

Xero does not refuse a file the moment it reaches 1,000 lines, but it says you need to split any file that contains more than 1,000 bank transactions. Larger files tend to end in a timeout error, which means Xero could not import that many lines at one time. Files with precoded lines may need to be smaller still.

Xero's page on resolving manual import errors gives this guidance under the timeout error. It is the practical limit, because a timeout gives you nothing to fix in the file except its size.

Who runs into it

A small business with a few hundred transactions a month rarely meets the limit with monthly statements. It comes up when you:

  • import a whole year in one go during a move to Xero,
  • export a busy account, such as a card used for many small purchases,
  • or combine several months into one spreadsheet before saving it as CSV.

The guide to importing an Excel bank statement into Xero covers that last case, where a workbook grows past the limit without anyone noticing.

Does Xero limit statement import files by rows or file size?

Yes, but the caps differ by file type. A CSV statement cannot have more than 100,000 rows. A PDF statement must be 35MB or smaller, have no more than 100 pages and be at least 200 DPI. In the Xero articles read for this guide, no byte-size cap was given for CSV, OFX or QIF files.

Xero's guide to importing a CSV bank statement gives the 100,000-row cap and suggests deleting empty rows or switching to OFX or QIF if you hit it. Xero's guide to importing a PDF bank statement lists the PDF requirements, and says PDF imports are available only to organisations in the US and Canada.

File type Limit Xero states What to do if you exceed it
Any statement file Split above 1,000 transactions Split by date
CSV No more than 100,000 rows Remove empty rows, or split
PDF 35MB or less, 100 pages or fewer Import each statement separately

The 100,000-row cap matters less than it looks. Long before a file reaches it, the 1,000-transaction guidance applies. Where it does bite is a CSV with thousands of blank rows at the bottom, often left over from a spreadsheet. Those rows count, so delete them.

Reference and check number length limits on Xero statement lines

A statement import can also fail because one field in one row is too long. Xero sets a limit of 255 characters for the Reference field and 20 characters for the Check number field. A single row over either limit makes the import fail, however small the file is.

Long references usually come from a bank export that packs several fields into one column, such as a wire transfer with the sender's full address. Shorten the cell, or move the extra text into the Description column. Check numbers rarely run long, but a column that holds a reference code instead of a check number can. If check numbers matter to how you match payments, the QuickBooks guide to importing checks with their numbers shows the same problem from the other side.

How do you split a large statement into Xero import files by date?

Split a large statement into files by calendar month, or by half month for a busy account, so each file stays under 1,000 transactions. Keep the header row in every file. Name each file by its date range, and import them in date order, oldest first.

The steps

  1. Open the full export in a spreadsheet and sort it by date, oldest first.
  2. Count the rows for each month. A pivot or a simple count by month works.
  3. Mark where each file will end, always at the end of a day.
  4. Copy each block into a new sheet, with the header row at the top.
  5. Save each one as CSV with a name like checking-2026-01.csv.
  6. Add up each file's amounts and write the total down before you import.
  7. Import the files in order and check the statement balance after each.

A worked example

The figures below are an example. A café exports a full year from its card terminal account and finds 2,600 transactions:

File Dates Transactions
cafe-2026-q1.csv January 1 to March 31 610
cafe-2026-q2.csv April 1 to June 30 655
cafe-2026-q3.csv July 1 to September 30 720
cafe-2026-q4.csv October 1 to December 31 615

Quarterly files work here because no quarter passes 1,000. If summer had held 1,100 transactions, the third quarter would split into July and August-to-September files instead. The layout of each file follows the columns Xero wants in a statement CSV.

Split statement files that leave gaps or doubles in Xero

The most common mistake when splitting is a boundary that drops or repeats a day. A file that ends on March 30 and a next file that starts on April 1 lose March 31. A file that ends on March 31 and another that starts on March 31 count that day twice. Neither causes an import error.

Xero's duplicate check may not catch every repeated line, so do not rely on it.

Check each boundary with the statement balance. After every file, the statement balance in Xero should equal the bank's balance on the file's last date. If it is out by a few lines, look at the day on each side of the split.

A missing day can be fixed with a small extra file covering just that date. When only one or two lines are missing, the guide to manually adding bank statement lines in Xero explains the options and their risks. A duplicated day is fixed by deleting the extra statement lines, not by editing the next file.

SimpleBankConvert is being built to turn each PDF statement into its own Xero-ready CSV, which keeps files to one statement period. You can join the early access list to try it when accounts open.

All posts in Xero imports