Formatters & Code

Free Xero CSV Validator & Bank Statement Fixer

Validate and fix bank statement CSV files for Xero. Clean currency symbols, merge debit and credit columns, fix date formats, and verify totals locally.

Bank statement source

Bank statement CSV and TSV only. Runs 100% locally in your browser. Xero requires a single signed Amount column (positive for Money In/deposits, negative for Money Out/payments). If your bank statement splits transactions across Debit and Credit columns, they will be merged automatically.

Or drag and drop your statement file here. Nothing is uploaded to any server.

No source selected.

Regional profile & validation

Results

What the result means

The validator audits your bank CSV against Xero's published import rules completely within your browser. Xero requires a single signed amount column where incoming deposits are positive and outgoing payments are negative. When bank exports feature separate debit and credit columns, the tool merges them into Xero's standard format without losing pennies. It strips currency symbols, normalizes bracketed negatives, removes empty trailing rows, and filters bank balance summaries that trigger cryptic import errors. You verify net money-in and money-out totals before downloading a clean UTF-8 RFC 4180 CSV.

Related tools

Guides

Advertisement

Questions

Why does Xero reject my bank CSV?

Xero's CSV parser expects a single Amount column, strict numeric formatting without currency symbols ($ or £), standard minus signs rather than brackets for negatives, and no trailing summary rows or blank lines.

How does this tool handle separate Debit and Credit columns?

The validator automatically detects dual amount columns and merges them into Xero's required single signed Amount column. In standard banking, Credit is Money In (positive) and Debit is Money Out (negative). An orientation toggle lets you reverse this for credit cards or ledger files.

Does my financial data leave my browser?

No. All CSV parsing, delimiter detection, number cleaning, and file generation run purely on your local machine using client-side JavaScript. No spreadsheet data is sent over the network or logged in telemetry.

What date format does Xero expect for bank statements?

Xero accepts DD/MM/YYYY, MM/DD/YYYY, and YYYY-MM-DD. However, if your file uses DD/MM/YYYY and your Xero organization defaults to US dates, dates like 05/06/2026 can be misinterpreted. The tool formats dates unambiguously according to your chosen profile.

Why do I have to verify Money In and Money Out totals?

If debits and credits are accidentally inverted, expenses become income and vice-versa. The confirmation gate guarantees you catch sign discrepancies before importing records into your live accounting ledger.

Need help with a tool or found a bug?

Report an issue directly to engineering. No accounts required — all client data remains private on your device.

Report an Issue →