Column Validation
Checks for required columns like ContactName, InvoiceNumber, InvoiceDate, AccountCode.
Enter your email to receive a sign-in link
Check your invoice CSV for errors before importing to Xero.
Free preview — then from $5. Save with bundles.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.
Your Xero file is validated entirely in your browser — nothing is uploaded to any server. The Xero Invoice validation runs client-side using JavaScript.
Export or prepare your Xero Invoice CSV file following the platform's template requirements.
Upload your Xero Invoice CSV file. The validator checks every row against the expected format rules.
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.
Checks for required columns like ContactName, InvoiceNumber, InvoiceDate, AccountCode.
Validates dates in DD/MM/YYYY (UK/AU/NZ) or MM/DD/YYYY (US) format.
Get specific error messages with row numbers for quick debugging.
Validates invoices with multiple line items sharing same InvoiceNumber.
Files processed locally. Your data never leaves your computer.
Get validation results in seconds, even for large files.
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.
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.
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.
Issues you might encounter when importing Source data to Target - and how we solve them
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
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
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
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
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
No server round-trips. Your Xero Invoice data is processed entirely in the browser tab.
The moment you close the page, all Xero Invoice data is wiped from browser memory. No traces left.
Meets GDPR requirements by design — no data processing on external servers, ever.
Buy bundles and get up to 60% off. Perfect for recurring monthly conversions.
Help us improve—what stopped you today?
Enter your email to claim your welcome bonus
SpreadsheetBroccoli