DocTransform
All import guides

Xero won't import your bank statement file?

Fix the errors Xero shows when importing a bank statement CSV, then import clean every month.

Errors Xero shows

Xero finds no valid statement data

The file you uploaded does not contain valid statement data. Please check the file
Xero CentralHow to fix this error

Xero says the file type is invalid

File type is invalid
Xero Central

A Reference or Check number is too long

Maximum character limit for field (column) has been exceeded
Xero Central

What Xero’s importer checks

  • Date – For all dates, use one of the available date formats below.

    DocTransform fixes this: type

    Write Date as DD/MM/YYYY

    Or by hand

    open the Date column’s ⋯ menu → Format dates… → input YYYY-MM-DD, output DD/MM/YYYY (31/12/2024) → Save Rule; 2026-07-03 becomes 03/07/2026

    Xero Central
  • Don't use commas to show decimal places.

    DocTransform fixes this: type

    Write Amount as plain numbers, with a point for the decimals and no thousands separator

    Or by hand

    open Health → Comma decimals → Convert 5, which writes each amount as a plain number; -1.200,00 becomes -1200

    Xero Central
  • Amount – Both income and expense amounts must be in the same column.

    Xero Central
  • Delete any empty rows in your CSV file and try again, or use a different import file type such as OFX or QIF.

    DocTransform fixes this: type

    Delete the empty rows

    Or by hand

    select the empty rows and right-click → Delete 2 rows, by hand, each time: DocTransform saves no step for this way

    Xero Central
  • The header row must be in row 1 and each column name should be unique.

    Xero Central
  • Columns containing opening and closing balances, as Xero calculates the bank balance from the transactions

    Xero Central
  • If there are too many characters in either the Reference or Check number fields, the import fails.

    Xero Central
  • You need to split up the file if it contains more than 1,000 bank transactions.

    Xero Central

Before and after

640 transactions

bank_statement_july.csv
DateDescriptionAmountReference
2026-07-031Office Rent-1.200,002INV-4521
2026-07-04Client Payment2.450,00INV-4522
3
2026-07-07Supplier Payment-350,00INV-4523
2026-07-08Interest Credit12,40INV-4524
2026-07-09Card Fee-9,90INV-4525

    Fix it in DocTransform

    By hand: 10 stepsDocTransform: 1 sentence

    1. 1. Upload bank_statement_july.csv into DocTransform.
    2. 2. Type

      Write Date as DD/MM/YYYY, write Amount as plain numbers with a point for the decimals and delete the empty rows

      and press Send. Check the steps it adds; Undo takes them all back.
      Or by hand

      Apply the fixes: Format dates… on Date with output DD/MM/YYYY; then Health → Comma decimals → Convert 5 for Amount. Then select the empty rows and right-click → Delete 2 rows, by hand, each time. Delete the balance columns, shorten a long Reference and split a file of more than 1,000 transactions by hand: DocTransform saves no step for them.

    3. 3. Download the cleaned file as CSV, ready for Xero’s importer.
    “Write Date as DD/MM/YYYY, write Amount as plain numbers with a point for the decimals and delete the empty rows” typed into DocTransform; three steps applied, the dates and amounts rewritten, two empty rows removed; Undo shown
    1. Type the change in one sentence, in your own words.
    2. Wait about 5 seconds while the steps are written. Stop cancels.
    3. Check each step and how many cells or rows it changes.
    4. The file is clean. Not what you meant? One Undo takes it all back.

    Save this fix once, then rerun it on next month’s export with one click.

    Fix it by hand in Excel or Sheets

    1. In a blank workbook, choose Data → From Text/CSV, pick bank_statement_july.csv, set Data Type Detection to Do not detect data types and click Load.
    2. Select the empty rows (rows 4 and 5), right-click and choose Delete → Table Rows.
    3. Delete the columns that hold an opening or closing balance, and the bank account number if the file has one: right-click the header and choose Delete.
    4. Make sure row 1 holds the column names and that each name is unique.
    5. If more than 1,000 transactions remain, delete every row past the first 1,000 and import those in a second file.
    6. In E2 type =TEXT(A2,"dd/mm/yyyy") and press Enter; Excel fills it down the table, so 2026-07-03 becomes 03/07/2026.
    7. In F2 type =NUMBERVALUE(C2,",",".") and press Enter, so -1.200,00 becomes -1200 and 12,40 becomes 12.4.
    8. Select E2:F6 (down to your last row), press Ctrl+C, right-click A2 and choose Paste Special → Values.
    9. Select columns E and F, right-click and choose Delete to remove the helper columns.
    10. Choose File → Save As, pick CSV UTF-8 (Comma delimited) as the file type and click Save.

    Questions

    Does DocTransform split my file if it has more than 1,000 transactions?
    No — DocTransform doesn't split files. If your file has more than 1,000 transactions, split it by hand before importing.
    Will DocTransform delete my balance columns for me?
    No — DocTransform saves no step for removing a column. Delete the opening and closing balance columns by hand before importing.
    Can I reuse this fix next time I export my bank statement?
    Yes — save it once in DocTransform and rerun it on next month’s export.

    Free tools for this file

    Try this sentence free

    Free plan, no card required.

    Salesforce, HubSpot, Shopify, QuickBooks, Mailchimp, Pipedrive, WooCommerce, Klaviyo, Google Contacts, ActiveCampaign, Brevo, Zendesk, Square, Zoho CRM, and Xero are trademarks of their owners. DocTransform is not affiliated with them.