Drop the bank, invoice or journal file you are about to import. Accounting Import Check checks it against the rules your accounting system actually applies, offers a safe fix for every issue it can, and names every row that still needs a person.
CSV, TSV, XLSX or XLS, up to 50 MB
The file is read in this browser tab and never uploaded — no code on this page sends it. What the browser enforces is narrower: this page can reach no server but our own and Cloudflare's analytics, which never receives your file.
Sample
sample-bank-statement.csv · 15 rows · 4 columns · 1 KB
3 rows will be rejected or imported wrongly.
Two things about a ledger file have more than one correct reading, and picking the wrong one is silent. Every date and amount finding below depends on what this says.
Every reading agrees: this file writes dates as Day / month / year. At least one date has a day above the twelfth, which only fits one order.
Every reading agrees: this file writes amounts as 1.234,56.
Only the dates a fix rewrites are affected — an Excel serial number, or a row written in a different shape from the rest. Year-month-day is the one shape no accounting system can misread.
3 of 4 columns recognised
Values such as #REF! or #N/A are what a broken formula leaves behind. They import as text into a numeric field, or fail the row. Clearing them makes the gap visible instead of hidden.
Rows: 10
This row summarises the rows above it, but its amount sits in the same column as every real transaction — so the importer takes it as one more transaction and your ledger is out by the value of the whole file. Removing it is safe: an accounting system recomputes totals itself.
Rows: 15
A transaction with no date cannot be posted to a period. The importer rejects the row.
Rows: 15
Mixing shapes in a single column means no one setting reads all of it correctly. Once you have stated the order, the fix rewrites every date in this column to the one shape you chose for the export.
Rows: 13
A number like 45992 is how a spreadsheet stores a date internally, and it appears when a date column was converted to plain numbers. An importer reads it as a number, not a date. The fix writes the real date back.
Rows: 13
Read the way the rest of the file is written, this cell is not a number at all. Check for a note left in the amount column, or a currency written in words.
Rows: 10
An importer reads the formula text, not the number your spreadsheet displays, so the value that arrives may not be the one you can see. The fix keeps the text the formula produced.
Rows: 10
Grouping separators are for reading, not for importing: QuickBooks asks you to keep the amount column as simple as possible, without them. The value may not arrive as the figure you meant. The fix writes the plain number.
Rows: 1, 4, 5, 7, 11, 14, and 15
These rows share a date, an amount and a description. It is the signature of a statement downloaded twice or two overlapping date ranges pasted together — but two identical charges on one afternoon are also perfectly real, so only you can tell them apart. Nothing is removed.
Rows: 2, 3, 4, and 5
Trailing spaces stop a name matching an existing contact, so the importer creates a second one beside it. The fix trims them.
Rows: 2
Text such as Café is what happens when a UTF-8 file is opened as a regional encoding. Importing it stores the damaged spelling permanently. The fix restores the original characters.
Rows: 9 and 12
Nothing in this record type means this column, so the importer will ignore it. That is often right — a running-balance column should be left out — but check it is not a column you needed.
About the file rather than a particular row.
These amounts are written the European way, with a comma before the cents. Neither platform documents reading a decimal comma, so the value may not import as the figure you meant. The fix writes the plain point-decimal form, the shape both platforms' own examples use.
Rows: 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, and 13 and 2 more
Accountants write (850.00) for a negative. Xero documents it as one of two ways to write an expense; QuickBooks documents no reading for it, so the value may not arrive as the figure you meant. The fix writes a leading minus, the form both platforms' own examples use.
Rows: 6
Curly quotes and long dashes come from word processors and can break a match against a reference or a contact name. The fix replaces them with plain equivalents.
Rows: 4, 5, 8, 11, and 14
Showing 15 of 15 rows
| # | Date | Description | Amount | Running balance |
|---|---|---|---|---|
| 1 | ||||
| 2 | ||||
| 3 | ||||
| 4 | ||||
| 5 | ||||
| 6 | ||||
| 7 | ||||
| 8 | ||||
| 9 | ||||
| 10 | ||||
| 11 | ||||
| 12 | ||||
| 13 | ||||
| 14 | ||||
| 15 |
The cleaned file carries 15 rows, with 0 cells rewritten and 0 rows removed. Your original is untouched and still downloadable below.
Some blockers are still unresolved, so the import may still be rejected. The issues report lists every row that needs a person.