XERO INVOICE CSV CHECK · RUNS IN YOUR BROWSER · NOTHING UPLOADED

Why did my Xero invoice import fail?

Paste or drop your sales invoice CSV and get every problem with its line number before you import: a date order that disagrees with itself, lines of one invoice with different contacts or due dates, amounts like £1,450.00 or 1800,00, an Account Code that is a name, a Tax Type typed as 20%, a due date before the invoice date, invoice numbers Excel turned into 1.00E+12, dates saved as 46300, and semicolon-separated files. Then apply the safe fixes, convert dates, or split a long file into parts Xero will take.

The file is read in this browser tab and never leaves your device. Independent of Xero. Column names and rules are read from memory of Xero's public sales invoice CSV import template and help pages; no Xero import was available when this was built.

1. Your invoice CSV

The file from a spreadsheet, a billing system export, or Xero's own import template, saved as CSV.

Choose a file or paste the text, then click Check file.

2. Optional: check against your own Xero lists

Xero rejects an invoice line whose account code or tax rate does not exist in your organisation, and quietly creates a duplicate contact when a name is spelled a little differently. Paste the lists below and every line is compared. Same privacy: nothing is uploaded.

Leave these empty to skip. Click Check file again after pasting.

The model, and what it leaves out

Common questions

Why does my Xero sales invoice CSV import fail?

The usual causes are a date in a different order from your organisation's date setting, an invoice whose lines disagree on contact or dates, a missing required column or empty required cell, a Tax Type that is a percentage instead of a tax rate name, an Account Code that is the account's name rather than its code, amounts with a currency symbol or decimal comma, and an Excel save that turned numbers into scientific notation. This tool tests each of them and names the line.

How do I check a Xero invoice CSV before importing it?

Paste the file or drop it onto this page. It reads the header against the sales invoice template, groups lines by invoice number, and lists every problem with its line number as errors, warnings and notes. Nothing is uploaded.

Why does Xero say my dates are invalid?

Xero reads dates in the format set for your organisation, so 03/04/2026 is 3 April in one organisation and March 4 in another. A file mixing 27/11/2026 and 11/27/2026 cannot satisfy either. This tool detects the order your file uses, flags real conflicts, and converts to DD/MM/YYYY, MM/DD/YYYY, YYYY-MM-DD or D MMM YYYY when the source order is certain.

How many invoice lines can I import into Xero at once?

The help pages this tool was written from describe a limit of about 500 lines and a file size cap per import. The split option cuts a big file into parts of at most 500 lines and starts each new part at an invoice boundary so no invoice is separated. Check the current limit in Xero's help.

What should the Tax Type and Account Code columns contain?

Account Code is the code from your chart of accounts, such as 200, not the account's name. Tax Type is the name of a tax rate in your organisation, such as 20% (VAT on Income) or Tax Exempt, spelled exactly. Paste your chart of accounts, contacts and tax rate names in step 2 and the tool compares every line to them; without them it only lists the values used so you can compare by eye.

What does Apply safe fixes change?

Only things with one reasonable reading: the separator, template heading spelling, stray spaces around contacts, invoice numbers and codes, currency symbols and thousands separators in amounts, decimal commas, a percent sign in Discount, a .0 on an account code, lower-case currency codes, Excel serial dates, a chosen date format when the file's order is certain, and moving an invoice's lines together. It never edits a contact name, description, invoice number, amount digits, account code digits or tax type.

Is it safe to put my invoices into a web page?

The page runs in your browser, the file is read locally and nothing is uploaded; a test in the code asserts there are no network calls. Your own policies still decide what you may open in a browser.

What does this not check?

Whether Xero will accept the file today, whether contacts, accounts, tax rates and currencies exist in your organisation, whether an invoice number is already used in Xero, and anything Xero changes in its importer. A clean result is not a promise of success: import one or two invoices first.