Xero Inventory Item CSV Validator

🥦

Validate Complete

Validation Report Format
valid rows

Check your inventory 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 inventory item 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 inventory?

Only ItemCode is required. Recommended: ItemName, Description, SalesUnitPrice, SalesAccountCode, PurchaseUnitPrice, PurchaseAccountCode.

Can I import services and products?

Yes. Products typically have IsTrackedAsInventory=TRUE with quantity tracking. Services usually have IsTrackedAsInventory=FALSE.

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 Inventory CSV

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

2

Upload and Validate

Upload your Xero Inventory 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 inventory item import rejects files without clear error messages. The validator caught 14 rows where InventoryAssetAccountCode was blank on tracked items, plus 6 ItemCodes exceeding the 30-character limit. Without pre-validation, those rows would have silently failed and I'd have spent hours figuring out which products didn't make it into the system.

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

Migrating our product catalog into Xero meant getting unit prices to exactly two decimal places and setting the right tracked-vs-untracked flag for each item. The validator caught 83 rows where SalesUnitPrice had more than 4 decimal places and 12 items marked as tracked but missing the InventoryAssetAccountCode.

Marcus T.
Warehouse Operations Manager · 1,200 SKUs across 4 warehouses

ItemCode has a 30-character cap that Shopify SKUs routinely exceed. The validator flagged 34 codes over the limit and also found 9 duplicate ItemCodes that would have caused import failures. We shortened the codes and deduped before uploading — zero errors on the actual Xero import.

Dana K.
Retail Inventory Controller · 3 Shopify stores syncing to Xero

Why Validate Inventory Before Import?

Avoid ItemCode Conflicts

Xero requires unique ItemCodes (max 30 characters). Duplicate codes cause import failures. Validating first identifies conflicts before import.

What This Tool Checks

We validate your inventory CSV against Xero requirements: - Required ItemCode field (unique, max 30 chars) - Account codes for sales and purchases - Tracked inventory requirements (asset/COGS accounts) - Price values are valid numbers - Tax types match Xero format You get a 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?

ItemCode Validation

Checks uniqueness and 30-character limit for ItemCode.

Account Code Validation

Validates SalesAccountCode and PurchaseAccountCode format.

Tracked Inventory Check

Ensures InventoryAssetAccountCode and COGS accounts set if tracked.

Price Validation

Validates SalesUnitPrice and PurchaseUnitPrice are valid numbers.

Browser-Based

Files processed locally. Your data never leaves your computer.

Instant Results

Get validation results in seconds.

Common Target Import Errors

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

Missing Item Code

The ItemCode column is required for each item

(blank ItemCode)
PROD-001

Each inventory item needs a unique ItemCode

Add item codes to all rows

Item Code Exceeds Maximum Length

ItemCode exceeds 30 character limit

VERY-LONG-PRODUCT-CODE-THAT-EXCEEDS-LIMIT
PROD-001 (max 30 chars)

Shorten ItemCode to fit within Xero's 30 character limit

Truncate or abbreviate long item codes

Duplicate Item Code

ItemCode must be unique within the file and in Xero

PROD-001 (duplicate)
PROD-001-A, PROD-001-B (unique)

Each item needs a unique ItemCode

Rename duplicates or update existing items instead

Tracked Inventory Missing Required Accounts

IsTrackedAsInventory=TRUE requires InventoryAssetAccountCode and CostOfGoodsSoldAccountCode

IsTrackedAsInventory: TRUE, no accounts
IsTrackedAsInventory: TRUE, InventoryAssetAccountCode: 630, CostOfGoodsSoldAccountCode: 500

Tracked inventory items need asset and COGS accounts

Add InventoryAssetAccountCode and CostOfGoodsSoldAccountCode

Invalid Price Value

SalesUnitPrice or PurchaseUnitPrice contains non-numeric value

$49.99 or N/A
49.99

Prices must be plain numbers without currency symbols

Remove currency symbols and ensure numeric values

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.
Only ItemCode is required. Recommended: ItemName, Description, SalesUnitPrice, SalesAccountCode, PurchaseUnitPrice, PurchaseAccountCode.
ItemCode must be unique and max 30 characters. Alphanumeric characters recommended.
If IsTrackedAsInventory is TRUE, you need InventoryAssetAccountCode (e.g., 630) and CostOfGoodsSoldAccountCode (e.g., 500).
Yes. Products typically have IsTrackedAsInventory=TRUE with quantity tracking. Services usually have IsTrackedAsInventory=FALSE.
Your file is processed entirely in your browser. No data is uploaded to our servers.
That ItemCode already exists in Xero. Use a unique code, or export items and update the existing record instead.
Yes—match by ItemCode and reimport. Xero updates fields you supply, so validate the file and avoid unintended blanks.
Tracked items manage on-hand quantity and cost; untracked items don’t. Use tracked only if you need stock counts and valuation.
Your tax type must match a tax rate set up in that Xero org. Use the exact tax name/code Xero expects.
Your Sales/Purchase/Inventory accounts must exist in Xero's chart of accounts. Check the code/name and account type.