# Prepare and review an import file

Use a CSV template, check column matches and fix every error before committing a file.

Canonical: https://demo.qixcount.com/help/moving-to-qixcount/prepare-and-review-a-csv

Who can do this: Owners, or people with the permissions for the chosen import type

Where: Books, then Import data

You'll need: A CSV file up to 5 MB within the chosen type’s row limit; an as-of date for General ledger imports

Each import has a template and a review page. You need the [permissions for that import type](https://demo.qixcount.com/help/moving-to-qixcount/plan-your-move). Reviewing a file does not add business records.

## Prepare the file

1. Open **Books**, then **Import data**.
2. Select the type of records you want to import.
3. Select **Download CSV template**.
4. Fill the template with one record per row.
5. Save it as CSV.

Files accept commas, semicolons or tabs, with UTF-8 or Windows-1252 text. The limits are 5 MB and 100 columns. Lists allow 5,000 nonblank data rows, opening balances 2,000, and open invoice and bill files 500. Split a larger file and import each part. Include a header row and at least one data row. Every row must contain the same number of cells as the header. Remove report titles, subtotals and footer rows. If an unclosed quotation mark makes later rows read as one cell, the review blocks the file. Two columns with the same name are refused for amounts; for other fields the review warns you that only one is imported.

Text beginning with `=`, `+`, `-` or `@` can fail spreadsheet formula protection. Numeric phone-like values are excepted, but headers are not. Null bytes and most control characters are refused. Most mapped text allows 255 characters; notes and descriptions generally allow 1,000, with stricter document limits in the [open-document guide](https://demo.qixcount.com/help/moving-to-qixcount/import-open-invoices-and-bills).

Amounts must be nonnegative dollars with at most two decimal places. Dollar signs and correctly grouped thousands are accepted. An amount with a thousands comma must be inside quotation marks, as spreadsheets export it. A row that looks like an amount split by an unquoted comma is refused. Use the separate debit and credit columns for balances. Slash dates always mean US month/day/year; `YYYY-MM-DD` is also accepted.

Download a blank file from [import file templates](https://demo.qixcount.com/help/checklists-and-templates/import-file-templates).

## Upload and check

1. Enter **As-of date** if this is a General ledger import.
2. Choose **CSV file**.
3. Select **Upload and review**.
4. Expand **3. Check column mapping**.
5. Confirm every required destination matches the intended source column.
6. Choose **Do not import** for unused optional destinations.
7. Select **Update mapping and review** after changing matches.
8. Read **4. Review rows**, including every error and skipped duplicate.

A source column can map to only one destination. Common export headers can match automatically; always inspect the matches. Review pages show 100 rows at a time, with **Next rows** for longer files.

![Import review showing column matches, row results and the commit control](https://demo.qixcount.com/images/help/move-import-review.webp)

## Commit the file

Select **Commit import** only after reviewing the result. Any row or header error blocks the whole file. Correct row contents in your CSV and upload a new file; the review page edits mapping only.

All additions succeed together or roll back together. Duplicate rows are skipped without updating existing records. Permissions and posting rules are checked again at commit. A committed import cannot run again. Only opening balances have **Undo opening balances**, which reverses their journal on the original as-of date. Other types use their normal record correction actions.

After commit, the uploaded raw rows are cleared; the mapped review results are cleared once the upload is over 30 days old, and the counts stay after that. Unfinished review or failed uploads older than 30 days have their raw rows and row results cleared and become expired. A business keeps its 20 newest unfinished uploads, so older ones can expire sooner. If the page was opened before someone changed the file's mapping or the results changed, **Commit import** stops so you can review again. Keep your original CSV; upload it again to continue after expiry.

Next, follow the guide for [customers](https://demo.qixcount.com/help/moving-to-qixcount/import-customers), [vendors](https://demo.qixcount.com/help/moving-to-qixcount/import-vendors) or [accounts](https://demo.qixcount.com/help/moving-to-qixcount/import-a-chart-of-accounts).
