Why every bank CSV needs remapping
Bank CSV exports are inconsistent by design. HSBC calls the amount column Value. Barclays splits it into Money Out and Money In. Sparkasse uses German locale numbers and a header row buried under six rows of account metadata. Chase gives you Posting Date, Description, Amount, Type, Balance — five columns, none of which match what QuickBooks Online expects.
The importers on the other side (QuickBooks, Xero, Sage, FreshBooks, Wave) each have their own strict schema. QuickBooks Online wants three columns: Date, Description, Amount. Xero wants five: *Date, *Amount, Payee, Description, Reference, with dates in DD/MM/YYYY. Sage 50 wants a Type column with R/Pcodes for receipts and payments. Getting from the bank's shape to the accounting tool's shape is a fifteen-minute Excel job every month, per account, per client.
This tool does it in one screen. Drop the CSV, glance at the auto-detected mapping, override anything that looks wrong (a dropdown per column), pick the target schema, download.
What the mapping wizard handles automatically
- Metadata rows above the header.Most bank CSVs have 1-7 rows of account name, statement period, and opening balance before the actual headers. We scan the first 15 rows for a plausible header row and skip everything above it — but show you what was skipped in a toggle, so it's never a black box.
- Delimiter detection. Comma, semicolon and tab-separated files all work. European banks default to semicolons because their locale uses commas as the decimal separator.
- Column role guessing. Combines the header name (matches
date,posted,value date,narration,debit,money out, etc.) with the value shape (how many rows parse as dates? as numbers? does the sign vary?). Every guess is overridable via a dropdown per column. - Amount vs Debit/Credit. If your bank uses two positive-only columns, we map them to
DebitandCreditand merge them into a single signed amount in the output. Debits become negative, credits stay positive. - Locale-aware amount parsing.
1,234.56(US),1.234,56(EU),(45.30)(parens negatives), and trailingDR/CRmarkers are all normalised. - Date normalisation. ISO (
2026-04-15),15/04/2026,15.04.2026, and15 Mar 2026all get rewritten to the format the target accounting tool expects. - Duplicate roles.A given column role (Date, Amount, Balance…) can only be assigned once. If you pick a role that's already taken, the previous holder is cleared automatically — no silent conflicts.
Supported output schemas
| Target | Columns emitted | Date format | Amount |
|---|---|---|---|
| Xero (worldwide) | *Date, *Amount, Payee, Description, Reference | DD/MM/YYYY | Single signed |
| QuickBooks Online (3-col) | Date, Description, Amount | MM/DD/YYYY | Single signed |
| Sage 50 | Date, Type, Reference, Details, Amount | DD/MM/YYYY | Positive, sign in Type (R/P) |
| Generic clean CSV | Date, Description, Payee, Reference, Amount, Balance | ISO (YYYY-MM-DD) | Single signed |
Also accepts PDF statements
Most banks in the UK, EU and India only give you PDF statements — not CSV. If you drop a PDF, we run it through our main converter (counting against your 7 free pages a day) and feed the reconciled transactions into the same mapping wizard. That way even PDF-only banks reach a QuickBooks-ready file in a single flow, without you copy-pasting between tools.
If your PDF is password-protected, unlock it first with our PDF password remover — that also runs entirely in your browser.
What's different about our approach
The naive way to build this — a static column-picker that only handles one bank's layout — helps nobody. Real bank exports vary widely and change over time. So we combine two signals to guess each column's role:
- Header name matching.Regex-based scoring for each candidate role. "Posted Date" scores 100 for Date. "Money Out" scores 90 for Debit. "Merchant" scores 90 for Payee.
- Value shape analysis.We scan the first 50 data rows and count how many parse as dates, how many parse as numbers, whether the sign varies, average text length. A column that's 80% numeric with signs on both sides is almost certainly the Amount column even if the header just says
Value.
Then we take the highest combined score for each role, greedy-assign, and never let two columns hold the same role. If our guess is wrong, every column has a dropdown — override in one click.
When to skip this tool
If you're starting from a PDF and need the file straight into QuickBooks or Xero, our main converter does PDF → reconciled QuickBooks / Xero / Sage in one pass with the balance-reconciliation check that catches extraction errors before they land in your books. Use this column-mapper when you already have a CSV in hand and just need to change its shape.
For occasional column-mapping tasks, this tool is free forever. For ongoing bookkeeping across many clients or accounts, paid plans start at €19/month with QuickBooks / Xero / Sage export built in.