Skip to main content
Runs in your browser. Your file is never uploaded.

Free Xero CSV Validator

Catch every import error before Xero does. Drop a CSV, pick your document type and region, and get an instant row-by-row report.

Drop your CSV here or click to browse

CSV or .txt files only, up to 10 MB

Drop a CSV file above to see validation results.

What this tool checks

File-level checks

  • • Valid CSV with correct delimiter (comma vs semicolon)
  • • UTF-16 flagged (UTF-8 and Latin-1 import fine)
  • • Header row present and valid
  • • Misaligned column counts
  • • Duplicate header names
  • • Too many invoices for one import (we suggest ≤ 500 per file)

Date checks

  • • Region ambiguity where every day is ≤ 12 (the silent trap)
  • • Format matches your selected region
  • • Consistent DD/MM vs MM/DD across all rows
  • • Invalid calendar dates flagged
  • • Excel date serials flagged
  • • ISO and named-month dates accepted (Xero reads them)

Invoice & bill checks

  • • Required headers present (case and spacing matter; the star is optional)
  • • Near-miss header suggestions
  • • Required values present per row
  • • Blank TaxType cell flagged (Xero imports the line untaxed)
  • • Same contact/dates across a multi-line invoice (Xero keeps only the first)
  • • Due date before invoice date warning
  • • Invoice count and line item count summary

Number checks

  • • Currency symbols in amount fields
  • • A comma used as the decimal separator (Xero reads it 100x too big)
  • • Parentheses for negatives (Xero reads them as positive)
  • • Empty required numeric fields

What this tool cannot check

Because the validator runs entirely in your browser, it cannot access your Xero organisation's data. The following fields are shown in an info card with the distinct values found in your file so you can cross-reference them manually:

  • • Whether ContactNames exist in your Xero contacts
  • • Whether AccountCodes exist in your chart of accounts
  • • Whether TaxType names match your Xero tax rates

Frequently asked questions

Is my data safe?

Yes. Everything runs locally in your browser using JavaScript. Your CSV file is never uploaded to any server. You can disconnect from the internet after loading this page and the tool still works.

What file size can I validate?

The tool accepts files up to 10 MB. Either way, Xero slows down and then fails partway through on large invoice imports (in our testing it died around 600 invoices), so a big file needs splitting regardless. We suggest keeping each file to 500 invoices or fewer, and the tool can split it for you.

Why are some dates flagged as ambiguous?

When every date in your file has a day value of 12 or below (e.g. 03/06/2026), Xero cannot tell whether it's DD/MM or MM/DD. Xero silently assumes whichever matches your organisation's region setting. If your org is set to US but the dates are actually DD/MM, dates get silently misread - the most dangerous type of import error. The validator flags this and asks you to confirm your region.

Can I fix my CSV file with this tool?

Yes, for the mechanical problems: encoding, delimiters, header spelling, swapping day and month to your region, amount formatting, and splitting a file that has too many invoices for one import. You tick the fixes you want, see a before/after preview of every affected cell, and download the corrected file - still entirely in your browser. Anything that needs business knowledge, like a missing amount or an account code we cannot verify, is flagged but never changed for you.

Does the validator check whether my contacts and account codes exist in Xero?

No, because the tool runs entirely in your browser and cannot access your Xero data. It lists the distinct contact names, account codes, and tax rates found in your file so you can cross-reference them against your Xero organisation manually.

How is this different from just trying to import into Xero?

Xero's import errors are often vague ("Import failed" with no row numbers). The validator shows you every issue, on every row, before you upload - with specific fix hints. It also catches the silent failures that Xero doesn't report, like date ambiguity where Xero imports all dates on the wrong day.

Also read