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

Xero Inventory Validation Questions

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 Xero file during validation?

Your Xero file is validated entirely in your browser — nothing is uploaded to any server. The Xero Inventory validation runs client-side using JavaScript.

How Xero Inventory 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.

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

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.

How People Use Xero Inventory

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 Xero Inventory Before Import?

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.

Your Xero Inventory Data Stays Private

Local Processing Engine

Your Xero Inventory files stay on your device. Processing happens client-side, nothing leaves your machine.

Zero Server Storage

Your Xero Inventory files are never cached, logged, or stored anywhere. Every session is ephemeral.

Privacy-First Architecture

Designed for data sovereignty. No third-party trackers or analytics touch your Xero Inventory files.

More credits - more savings

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

Frequently Asked Questions

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 Xero file is validated entirely in your browser — nothing is uploaded to any server. The Xero Inventory validation runs client-side using JavaScript.
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.