Quick Answer
Xero CSV imports fail for seven predictable reasons.
The most common causes are date format mismatches (triggering "Date format not recognised"), account codes that don't exist in your chart of accounts, contact names that don't match exactly, duplicate reference numbers, amount fields containing currency symbols or commas, wrong column headers, and UTF-8 encoding errors. Every one of these is fixable in under five minutes without re-entering data manually.
Fast Fix (90 Seconds)
If your Xero import just failed, check these first:
- Open your CSV in a text editor (Notepad or TextEdit) — not Excel
- Check the first row — column headers must match Xero's template exactly, including capitalisation
- Check date column — Xero expects DD/MM/YYYY (AU/NZ/UK) or MM/DD/YYYY (US) depending on your region settings
- Check amount columns — remove all currency symbols ($, £, €) and comma thousand-separators
- Re-save as UTF-8 — File → Save As → Encoding: UTF-8 (no BOM)
If your file passes all five checks and still fails, continue below for the specific error fix.
TL;DR: Xero CSV imports fail most often because of date format mismatches, missing account codes, or amount fields with symbols. Clean your file client-side with SplitForge Data Cleaner, match Xero's exact column headers, and re-import. No re-entering data required.
Xero is doing its job correctly. Your file doesn't match what it expects, and the error message it gives you is often too vague to act on immediately.
You exported the bank statement, formatted the invoices, or built the journal — and now Xero is telling you it can't import the file without explaining which row is wrong or why. The deadline for the month-end close is today.
This guide covers the seven most common Xero CSV import errors, what they actually mean, and the exact steps to fix each one. Each error type was reproduced using Xero's bank statement, invoice, and contact importers, March 2026.
What Xero's Error Messages Actually Mean
"We couldn't import your file" — Generic catch-all for column header mismatch or wrong file format. Start by comparing your headers to Xero's downloadable template.
"Date format not recognised" — Your dates are formatted differently from your Xero region settings. A US-formatted date (04/30/2026) will fail in an AU/NZ/UK Xero account that expects (30/04/2026).
"Account [code] not found" — The account code in your CSV doesn't exist in your Xero chart of accounts. Either the code is wrong or the account hasn't been created yet.
"Contact [name] not found" — The contact name in your import file doesn't exactly match the name in your Xero contacts list. One extra space or different capitalisation causes this.
"Duplicate reference number" — Xero already has a transaction or invoice with that reference. It rejects the duplicate silently or with this message.
"Amount must be a number" — Your amount column contains currency symbols ($, £, €), comma separators (1,000.00), or text. Xero only accepts plain decimals (1000.00).
"Tax rate [name] not found" — The tax rate label in your file doesn't match an active tax rate in your Xero settings. Exact wording may vary by account region.
Rows import successfully but amounts show as zero — Amount column contained symbols or commas that Xero couldn't parse, so it defaulted to zero. Remove currency symbols and thousand-separators and re-import.
Xero CSV Import Error Quick Reference
| Error / Symptom | Root Cause | Fix |
|---|---|---|
| "Date format not recognised" | CSV dates don't match your Xero region setting | Reformat to DD/MM/YYYY (AU/NZ/UK) or MM/DD/YYYY (US) |
| "Account [code] not found" | Code missing from chart of accounts | Add account in Xero or correct the code |
| "Contact [name] not found" | Name doesn't exactly match Xero contact | Match spacing, punctuation, and capitalisation exactly |
| "Amount must be a number" | Currency symbols or commas in amount field | Remove $, £, €, and comma separators |
| "Duplicate reference number" | Transaction already exists in Xero | Remove duplicate row or void existing transaction |
| "Tax rate [name] not found" | Tax label doesn't match Xero settings | Replace with exact label from Accounting → Tax Rates |
| "We couldn't import your file" | Column headers or file format mismatch | Match official Xero template headers exactly |
| Amounts show as zero after import | Symbols parsed as zero, no error shown | Strip symbols and re-import affected rows |
Table of Contents
- Why Xero CSV Imports Fail
- Error 1: Date Format Not Recognised
- Error 2: Account Code Not Found
- Error 3: Contact Not Found
- Error 4: Amount Must Be a Number
- Error 5: Duplicate Reference Number
- Error 6: Tax Rate Not Found
- Error 7: Column Headers Don't Match
- Fix Multiple Errors at Once
- Additional Resources
- FAQ
This guide is for: Bookkeepers, accountants, and business owners importing bank statements, invoices, contacts, or journals into Xero via CSV.
Already know the error? Jump directly to the section for your specific message above.
Why Xero CSV Imports Fail
Xero's importer is strict by design. It validates every row against your account settings before accepting anything. A single formatting issue in one column — wrong date format, unrecognised account code, extra currency symbol — fails the entire row or the entire file.
Most competing tools (QuickBooks, FreshBooks) have more forgiving importers that try to interpret ambiguous data. Xero does not. This design choice prevents bad data from entering your books, but it means your CSV must be clean before you upload.
The seven errors below cover roughly 90% of Xero import failures seen in practice.
Error 1: Date Format Not Recognised
Xero's "Date format not recognised" error occurs when the dates in your CSV don't match your organisation's regional settings. AU, NZ, and UK accounts require DD/MM/YYYY. US accounts require MM/DD/YYYY. Any mismatch — even a single date in the wrong format — causes Xero to reject every row it can't parse.
The problem: most exports from banks, payment processors, or Excel default to a different format than your Xero region. A file with 04/30/2026 will fail instantly in a UK Xero account expecting 30/04/2026.
Fix — Step by Step:
- Open your CSV in a text editor (not Excel — Excel auto-reformats dates when you open the file)
- Find your date column and check the format of the first five rows
- If the format doesn't match your Xero region, use SplitForge Data Cleaner to reformat the entire column at once
- Select your date column, choose "Reformat Date", and set the output format to match your Xero region
- Download the cleaned file and re-import
Prevention: When exporting from your bank or payment processor, check whether there's a date format option. Set it to match your Xero region at the source. This eliminates the conversion step entirely.
For more on date format issues in CSV files, see our guide to fixing mixed date formats in CSV columns.
[Screenshot: Date column in CSV showing MM/DD/YYYY vs DD/MM/YYYY comparison]
Error 2: Account Code Not Found
Xero's invoice and journal importers require an account code that matches exactly what exists in your chart of accounts. If you type 200 but the account is coded 200A in Xero, the row fails.
This error is common when importing from another accounting system, building a CSV manually, or when account codes have been updated in Xero since the template was last downloaded.
Fix — Step by Step:
- In Xero, go to Accounting → Chart of Accounts and export your full account list
- Open your import CSV and your account list side by side
- Find every account code in your import file and verify it exists exactly in the export
- For codes that don't match, either correct the code in your CSV or create the missing account in Xero first
- Re-import after all codes are verified
Common mistake: Using account names instead of codes. Xero's importer requires the code (e.g., 200) not the name (e.g., Sales). Check your template to confirm which column expects which.
Error 3: Contact Not Found
Xero's "Contact [name] not found" error appears when the contact name in your CSV doesn't exactly match an existing contact in Xero. One extra space, different capitalisation, or a single punctuation difference — Acme Corp vs Acme Corp. — fails the row. Xero does not fuzzy-match contact names.
Fix — Step by Step:
- Export your Xero contacts list (Contacts → All Contacts → Export)
- In your import file, identify the contact name column
- Run a find-and-replace or use SplitForge Data Cleaner to standardise contact names against your exported list
- For new contacts, either create them in Xero before importing or check whether your import type allows creating contacts on import (bank statement imports do not; invoice imports do in some cases)
- Re-import after names are aligned
Tip: Use the Data Cleaner's fuzzy match feature to catch near-matches (e.g., Smith & Sons vs Smith and Sons) before they cause failures.
[Screenshot: Contact name mismatch — "Acme Corp" vs "Acme Corp." in Xero contacts]
Error 4: Amount Must Be a Number
Xero's amount fields accept only plain decimal numbers. Anything else — currency symbols, comma separators, parentheses for negatives, or the word "nil" — fails validation.
This is the most common error when importing bank statements exported directly from a bank portal. Banks format amounts for human readability ($1,234.56) not for software import (1234.56).
Fix — Step by Step:
- Open your CSV in a text editor and locate your amount columns
- Check for:
$,£,€,(,),,inside number fields, or any text likenilorN/A - Use SplitForge Data Cleaner → Find & Replace to strip all currency symbols and comma separators from amount columns in one pass
- Convert any parenthetical negatives
(500.00)to negative decimals-500.00 - Verify the cleaned amounts look correct, then re-import
Edge case: If your amounts use a comma as a decimal separator (common in European exports), you'll also need to swap commas to periods. Our guide on fixing CSV delimiter and encoding issues covers this in detail.
Error 5: Duplicate Reference Number
Xero rejects any invoice, bill, or transaction with a reference number that already exists in your books. This error is most common when re-importing after a partial failure, or when migrating historical data that overlaps with transactions already entered manually.
Fix — Step by Step:
- Note which reference numbers are failing (Xero will show them in the error summary)
- Search for each reference in Xero (Business → Invoices, use the search bar)
- If the existing transaction is correct, delete the duplicate row from your CSV
- If the existing transaction is wrong, void it in Xero first, then re-import
- For bulk historical migrations, append a prefix to all reference numbers (e.g.,
HIST-INV-001) to avoid clashes
Error 6: Tax Rate Not Found
Xero validates tax rate labels against the tax rates configured in your account settings. If your CSV says GST 10% but Xero has it configured as GST on Income, the row fails.
Regional variation is significant here. Australian, New Zealand, UK, and US Xero accounts all have different default tax rate names.
Fix — Step by Step:
- In Xero, go to Accounting → Tax Rates and note the exact name of each active rate
- In your import CSV, find every unique value in your tax rate column
- Replace each value with the exact Xero label (exact wording, exact capitalisation)
- If a tax rate doesn't exist in Xero, create it before importing
- Re-import after all tax rate values are corrected
Note: Xero's exact tax rate labels vary by region and account configuration. If you're unsure, export a sample transaction from Xero and check the exact label it uses.
Error 7: Column Headers Don't Match
Xero's importers are template-specific. Bank statement imports, invoice imports, and contact imports each require a different set of column headers in a specific format. Adding extra columns, renaming required headers, or changing capitalisation causes the import to fail or silently skip columns.
Fix — Step by Step:
- Download the official Xero import template for your import type from the Xero Help Centre
- Open both the template and your CSV side by side
- Rename your column headers to match the template exactly — same spelling, same capitalisation, same order
- Remove any columns not in the template (Xero ignores extra columns in some importers but rejects them in others)
- Re-import using the corrected headers
Common mistake: The "Description" column in some Xero templates is case-sensitive. description will fail where Description is required. Check the template carefully.
[Screenshot: Xero template column headers vs custom CSV headers showing mismatch]
Fix Multiple Errors at Once
If your CSV has several of the errors above, fixing them one at a time is slow. The most efficient approach is to clean the entire file in a single pass before re-importing.
Bulk fix workflow:
- Upload your CSV to SplitForge Data Cleaner — your file never leaves your browser
- Strip currency symbols and comma separators from amount columns
- Reformat date columns to match your Xero region
- Standardise contact names against your Xero contacts export
- Remove or flag duplicate reference numbers
- Download the cleaned file and import to Xero
This typically takes under five minutes for files up to 50,000 rows. For a full walkthrough of CSV cleaning before platform imports, see our complete guide to why CRMs reject CSV imports. If your Xero errors relate to Tax ID formatting, our Tax ID format fix guide covers accounting software validation in detail.
For a broader overview of CSV import errors across all platforms, see our complete CSV import errors guide.
Additional Resources
Official Xero Documentation:
- Xero Help Centre — Import a CSV file — Official import guide with template downloads
- Xero Help Centre — Fix import errors — Bank statement import troubleshooting
Technical Standards:
- RFC 4180: Common Format and MIME Type for CSV Files — Official CSV specification
- Unicode Consortium: UTF-8 Encoding — Encoding standard and BOM guidance
Related Guides:
- ISO 8601: Date and Time Format — International date format standard
- W3C: Character Encoding Recommendations — Encoding best practices for data files
SplitForge Guides:
- Finance CSV Data Prep: Fix Accounting Import Errors Safely — comprehensive guide covering Xero, QuickBooks, NetSuite, Stripe, and bank export errors across all platforms
- Split CSV for Xero: 100,000-Row Limit Workaround — strategies for large bank statement exports that exceed Xero's import row cap
Tested: Xero bank statement, invoice, and contact importers. Errors reproduced in Xero AU, UK, and US regional settings. March 2026.