Xero Invoice CSV Validator

🥦

Validate Complete

Validation Report Format
valid rows

Check your invoice CSV for errors before importing to Xero.

Free preview — then from $5. Save with bundles.
Free preview before you pay
Files never leave your browser
No account needed to start

Download Clean Sample

Valid Xero invoice CSV (no errors)

Clean Template

Download Error Sample

Sample with validation errors for testing

Error Example

Validation Questions Answered

What columns are required for Xero invoices?

Required columns are ContactName, InvoiceNumber, InvoiceDate, DueDate, Description, Quantity, UnitAmount, AccountCode, and TaxType. Optional: EmailAddress, Reference, InventoryItemCode, Discount, Currency.

What date format does Xero use?

UK, Australia, NZ, and Europe use DD/MM/YYYY. United States uses MM/DD/YYYY. Select your region to validate against the correct format.

What happens to my data?

Your file is processed entirely in your browser. No data is uploaded to our servers.

How Validation Works

1

Prepare Your Xero Invoice CSV

Export or prepare your Xero Invoice CSV file following the platform's template requirements.

2

Upload and Validate

Upload your Xero Invoice CSV file. The validator checks every row against the expected format rules.

3

Review Validation Results

Fix flagged errors using the row-level report, then import your clean file with confidence.

Issues are flagged inline with clear fix suggestions — review and correct before you import.

How People Use This

Xero's invoice import gives cryptic error messages that don't tell you which row failed. The validator flagged 23 rows with missing ContactName fields and 8 invoices where DueDate was before InvoiceDate — issues that would have caused partial imports with no indication of what got skipped. Now I validate every file before uploading to Xero.

Bridget O.
Xero-Certified Bookkeeper · 14 clients across 3 industries

DueDate calculations trip up every migration. QBO exports net-30 as a blank DueDate, but Xero requires an explicit date. The validator flagged 146 rows with missing DueDate and 22 rows where InvoiceDate was after DueDate — both would have silently created invoices with incorrect payment terms.

Tomasz R.
Migration Consultant · QBO-to-Xero migrations quarterly

Multi-line invoices need every row to carry the same ContactName and InvoiceNumber, but our ERP export sometimes leaves those fields blank after the first line item. The validator caught 38 rows with empty ContactName and flagged TaxType mismatches where line items used 'GST Free' instead of 'BAS Excluded' — Xero rejects the entire invoice if even one line has an invalid tax code.

Priya M.
Accounts Receivable Manager · 400+ invoices imported monthly

Why Validate Before Xero Import?

Avoid Import Failures

Xero invoice imports fail silently on bad data. Wrong date formats, missing ContactName, or invalid TaxType cause rejections without clear errors. Validating first identifies problems before you waste time troubleshooting.

What This Tool Checks

We validate your CSV against Xero requirements: - Required columns (ContactName, InvoiceNumber, InvoiceDate, DueDate, Description, Quantity, UnitAmount, AccountCode, TaxType) - Regional date formats (DD/MM/YYYY for UK/AU/NZ, MM/DD/YYYY for US) - Multi-line invoice structure (same InvoiceNumber) - Currency values valid Detailed error report with row numbers to fix issues.

Your Data Stays Private During Validation

Every Row Checked

Each record is validated against format rules. Catch errors before they reach your platform.

Runs in Your Browser

Validation happens locally. Your data never leaves your browser.

GDPR Compliant

No files uploaded, no data retained. Full EU privacy compliance.

More credits - more savings

Buy bundles and get up to 60% off. Perfect for recurring monthly conversions.

Why Validate Before Importing?

Column Validation

Checks for required columns like ContactName, InvoiceNumber, InvoiceDate, AccountCode.

Regional Date Validation

Validates dates in DD/MM/YYYY (UK/AU/NZ) or MM/DD/YYYY (US) format.

Row-Level Errors

Get specific error messages with row numbers for quick debugging.

Multi-Line Support

Validates invoices with multiple line items sharing same InvoiceNumber.

Browser-Based

Files processed locally. Your data never leaves your computer.

Instant Results

Get validation results in seconds, even for large files.

Common Target Import Errors

Issues you might encounter when importing Source data to Target - and how we solve them

Missing Contact Name

The ContactName column is required for each invoice

(blank ContactName)
John Smith

Each invoice needs a contact name (customer)

Add contact names; Xero will create contacts if they don't exist

Invalid Date Format

Dates must match your Xero region format

2025-01-15 or 01/15/2025 (for UK)
15/01/2025 (UK) or 01/15/2025 (US)

UK/AU/NZ uses DD/MM/YYYY, US uses MM/DD/YYYY

Reformat dates to match your Xero organization's region

Duplicate Invoice Number

Xero rejects InvoiceNumber values that already exist

INV-1001 (already exists in Xero)
INV-1002 (unique)

Each invoice needs a unique InvoiceNumber

Check Xero for existing invoices before importing

Tax Type Not Found

TaxType must exactly match a configured tax rate in Xero

20% VAT
20% (VAT on Income)

Use exact tax rate names from Xero Settings > Tax Rates

Update TaxType to match Xero's configured tax rates exactly

Missing Account Code

AccountCode is required for each line item

(blank AccountCode)
200

Every line needs a valid Xero account code

Add account codes from Xero Settings > Chart of Accounts

Frequently Asked Questions

Your data never leaves your device. All files are processed entirely in your browser using client-side JavaScript - no data is stored on our servers or sent anywhere. There's no account to hack, no database storing your files, and no API connections to your bank or accounting software. You upload, convert, download, and we forget it immediately.
No payment or signup required. You can upload your file, see a free preview of the conversion results, and verify everything looks correct before paying anything. If it doesn't work for your files, you haven't wasted any money. We only charge when you're satisfied and ready to download the final converted file.
You can, but free scripts and AI often miss edge cases that break real-world data: missing SKUs, currency formatting quirks, tax calculation errors, or date format mismatches. We have battle-tested validators specifically designed for accounting software imports that catch these issues before they corrupt your books. Plus, you get instant browser-based conversion without installing Python or managing dependencies.
Required columns are ContactName, InvoiceNumber, InvoiceDate, DueDate, Description, Quantity, UnitAmount, AccountCode, and TaxType. Optional: EmailAddress, Reference, InventoryItemCode, Discount, Currency.
UK, Australia, NZ, and Europe use DD/MM/YYYY. United States uses MM/DD/YYYY. Select your region to validate against the correct format.
TaxType must exactly match a tax rate configured in your Xero organization. Common values: 'Tax Exempt', '20% (VAT on Income)', 'GST on Income'.
Use the same InvoiceNumber for all line items. Each row with matching InvoiceNumber becomes a line item on that invoice.
Your file is processed entirely in your browser. No data is uploaded to our servers.
Use Xero’s invoice template, don’t change headers, and save as CSV (UTF-8). Fix blanks/invalid cells, then re-import.
Use the exact ContactName already in Xero. Small differences (Ltd vs Limited) can create a new contact.
InvoiceNumber must be unique (often per contact). Update the number or remove duplicates before importing.
Keep files small to reduce failures; many import guides recommend staying under ~500 invoices per file.
Yes, imports typically create Draft invoices so you can review and then approve them in Xero.