Your bank export is one file. QuickBooks Online, Xero, and Sage each want it shaped differently — and the differences run deeper than column names. Amount columns work three distinct ways across the three platforms, date formats reject silently by region, and QuickBooks Desktop doesn't accept standard CSV for bank transactions at all. This guide maps the exact format spec for each platform and shows how to reshape what you already have to match.
The scenario that makes this matter: a client moves from QuickBooks to Xero, or an accounting firm manages clients on multiple platforms. The same bank export fails differently on each system — not because the data is wrong, but because the format rules don't overlap. Understanding which rules differ is the fastest way to stop re-exporting and start importing.
Platform behavior compiled from Intuit QuickBooks, Xero Central, and Sage Help documentation, verified May 2026. Every claim requiring an official citation is anchored to a Tier-1 official vendor URL in the section or Additional Resources below.
Your Bank Statement Carries Customer PII — Handle It Accordingly
Bank exports and transaction files contain account numbers, payee names, and full transaction detail — often for business clients whose customers' data is in the file. Most free online CSV reshaping tools upload your file to a remote server and retain it for 30–90 days under their terms of service. For a file with account-level data, that's a GDPR Article 5 exposure: data processed beyond its original purpose without an adequate legal basis.
SplitForge processes entirely in your browser. The file never leaves your device — no upload, no server, no retention period. For the full risk picture on finance CSV privacy, see Finance CSV Privacy: Why Bank Statement Uploads Create GDPR Risk.
Table of Contents
- Platform Format Comparison Matrix
- QuickBooks CSV Format Requirements
- Xero CSV Format Requirements
- Sage CSV Format Requirements
- How to Reshape Your CSV for Each Platform
- Additional Resources
- FAQ
Platform Format Comparison Matrix
The three platforms differ most on amount structure — this is the non-obvious difference the converter SERP never explains. QuickBooks Online uses a single signed Amount column. Xero accepts either a signed Amount or a positive Debit/Credit pair. Sage 50 UK uses a Type code (BP for payment, BR for receipt) plus a positive Amount; US Sage 50 uses an OFX/QFX wizard instead of a BP/BR CSV. The SplitForge step that handles this is usually header renaming, not signing arithmetic — explained in each section below.
| Dimension | QuickBooks | Xero | Sage |
|---|---|---|---|
| Native transaction CSV import | Online: yes (map columns). Desktop: no — .qbo Web Connect or IIF only | Yes | Sage 50: CSV, OFX, QBO. Business Cloud: CSV |
| Amount structure | Single Amount column (positive = money in, negative = money out) | 3-column: Date, Description, Amount (signed) OR 4-column: Date, Description, Debit, Credit (both always positive) | Sage 50 UK: Type code BP/BR + positive Amount. Sage 50 US: OFX/QFX wizard. Business Cloud: 3-col (Date/Description/Amount — negative = money out) OR 4-col (Date/Description/Money in/Money out — both positive) |
| Date format | Region-locked; consistent format required | Region-locked; ISO 8601 (YYYY-MM-DD), named months (15-Mar-2026), and two-digit years all rejected | Region-locked (Sage 50: Company Preferences → Regional Settings) |
| Currency symbols | Strip $, £, thousand commas, and parentheses-negatives (($50.00) → -50.00) | Strip symbols; EU comma-decimal (, as decimal) → period | Strip symbols |
| Header row | Required; columns mapped by QuickBooks Online during import | Required; column order matters for the 4-column layout | Required; column set defined by the Type code (UK) or OFX wizard (US) |
| Encoding | UTF-8 recommended | UTF-8 required | CSV UTF-8 |
| Row guidance | Online: up to 1,000 lines per upload | Practical guidance: keep files under ~500 rows; see Xero row-limit split guide | — |
The headline row is Amount structure. For Xero's 4-column layout and Sage 50 UK's BP/BR layout, signing arithmetic is not required — SplitForge's Column Tools can rename headers to match the expected positive-amount structure. The single signed Amount is the narrow case where manual upstream arithmetic is needed (Xero 3-column or QuickBooks Online single-Amount format). Both cases are covered in the reshape workflow below.
QuickBooks CSV Format Requirements
QuickBooks Online accepts a CSV with three required columns: Date, Description, and Amount. The Date column must use a consistent format matched to your QuickBooks account's regional settings (MM/DD/YYYY in US accounts). The Amount column must be numeric — no currency symbols, no thousand separators, no parentheses-negatives. Positive values are money in; negative values are money out. QuickBooks Online's manual upload accepts up to 1,000 lines per file — split larger exports before import (Intuit manual upload guide).
Four specific formatting failures cause most QuickBooks Online import rejections. Currency symbols ($, £) and thousand commas (,) in the Amount column make the field a text string — the importer reads it as zero or skips the row silently. Parentheses-negatives (($50.00)) — common in bank export formats — are not parsed as negative numbers; they must be converted to dash-negatives (-50.00) before import. Zeros in amount cells (0) are rejected by QuickBooks Online as invalid transactions; those cells must be replaced with empty.
QuickBooks Desktop does not accept standard CSV for bank or transaction imports. The supported import path for Desktop is .qbo (Web Connect) for bank feeds, or IIF (Intuit Interchange Format) for manual transaction import (Intuit Desktop import/export guide). Desktop does support CSV import for non-transaction lists (customers, vendors, items) — but for bank transactions, CSV is not an accepted format.
For a full walk-through of QuickBooks Online CSV import errors, see QuickBooks CSV Import Errors: Fix Every Common Failure.
Xero CSV Format Requirements
Xero's bank statement CSV import accepts two distinct column layouts — and the choice between them determines whether you need to perform any signing arithmetic at all.
3-column layout (Date, Description, Amount): The Amount column is signed — positive for money in (receipts/deposits), negative for money out (payments). If your bank export has separate Debit and Credit columns with positive values, you would need to merge them into a single signed Amount column to use this layout. That merge is arithmetic, not a formatting step — it's done upstream in Excel or your export tool, not in SplitForge.
4-column layout (Date, Description, Debit, Credit): Both the Debit and Credit columns contain positive amounts. Xero applies the sign internally based on which column the value appears in. This is the layout that avoids signing arithmetic entirely: if your bank export already has separate Debit and Credit columns with positive values, you rename the headers to match Xero's expected names using Column Tools and import directly. No arithmetic required.
Xero's date validation is strict: it rejects ISO 8601 format (YYYY-MM-DD), named months (15-Mar-2026), and two-digit years. It also rejects trailing weekday text (20/11/2018 TUE). The accepted format is day-first in UK/AU/NZ accounts (DD/MM/YYYY) and month-first in US accounts (MM/DD/YYYY) — region-locked to your Xero organisation's settings. Find & Replace can strip trailing weekday text via a capture-group regex; full DD/MM ↔ MM/DD reorder is also achievable via a multi-capture-group regex, but it's a careful manual step — see Fix Accounting CSV Date Format Errors for the exact pattern.
Xero requires UTF-8 encoding. Files from older accounting software or European bank portals are often Windows-1252 — Format Checker detects this and outputs a clean UTF-8 file. Practical experience with Xero's importer suggests keeping files under around 500 rows for reliable processing; for large bank exports, see Split CSV for Xero: Working Around the Row Limit.
Sage CSV Format Requirements
The Sage picture is the most regionally varied of the three platforms. Sage 50's import structure depends on whether you're running the UK or US edition, and there are two distinct paths even within the UK edition.
Sage 50 UK — Bank Feeds (newer path): Sage's current Bank Feeds manual import accepts CSV, OFX, and other formats. When uploading a CSV, Sage prompts you to specify the date order and offers a toggle to switch transaction types (in/out). No Type codes are needed in this path — the direction is set interactively during import, and the Amount column is a positive number (Sage 50 UK Bank Feeds: importing a file).
Sage 50 UK — Audit-trail CSV import (legacy path): The older direct CSV import uses a structured format with a Type code (BP for Bank Payment, money out; BR for Bank Receipt, money in) and a positive Amount across up to ~10 columns. The column set is defined by the Type (Sage 50 UK import file format rules). Neither path requires a signed Amount column or a Debit/Credit pair — the direction is carried by the Type code or the toggle, so amounts are always positive.
Sage 50 US (Peachtree lineage): The US edition imports bank statements via an OFX/QFX wizard, not a CSV with Type codes (Sage 50 US: Import a Bank Statement). If you're on US Sage 50 and need to import bank transaction data from a CSV, you'll first need to convert it to OFX/QFX format.
Sage Business Cloud accepts CSV, OFX, QIF, and XLS for manual bank-statement imports (Sage Business Cloud: Supported file formats for bank statement imports). The CSV format has two layouts: 3-column (Date, Description, Amount — negative for money out) or 4-column (Date, Description, Money in, Money out — both values positive). Unlike Sage 50's audit-trail path, there are no BP/BR Type codes; direction is carried by column position in the 4-column layout or by the sign of the Amount in the 3-column layout.
The practical implication for reshaping a UK Sage 50 file: Column Tools can rename headers to match the expected column names, and Find & Replace handles currency symbol stripping. In the audit-trail path, no signing arithmetic is needed because direction is carried by the Type code. If your source has a single signed Amount column, separating positive-payment and positive-receipt rows into separate BP/BR rows is a structural step done upstream, not in SplitForge.
For import failures specific to Sage, see Fix Sage CSV Import Errors: Sage 50 and Business Cloud Guide.
How to Reshape Your CSV for Each Platform
Before opening QuickBooks, Xero, or Sage's import wizard, run this sequence on your bank export. Each step is honest about which tool handles it and what it does.
-
Fix encoding and delimiter first. Open your file in Format Checker. It detects the encoding (via jschardet with a confidence score) and the delimiter automatically, and outputs a clean UTF-8 comma-delimited file. This resolves BOM characters, Windows-1252 encoding, and semicolon delimiters in one pass — all three cause silent parse failures on every platform.
-
Strip currency symbols and thousand separators. Open Find & Replace in regex mode. Find
[$£,], replace with empty. This removes dollar signs, pound signs, and thousand commas from the Amount column in a single pass, leaving plain numeric values. -
Handle zeros (QuickBooks Online only). In Find & Replace, enable Match Whole Cell. Find
0, replace with empty. QuickBooks Online rejects0in amount cells; Xero and Sage do not have this restriction. -
Strip parentheses-negatives (QuickBooks Online). In Find & Replace, regex mode: find
\((\d+(?:\.\d+)?)\), replace with-$1. This converts(50.00)to-50.00. QuickBooks Online does not parse parentheses as negative signs. -
Rename headers to match the target platform. Use Column Tools. For Xero's 4-column layout: rename your export's Debit/Credit headers to match Xero's expected column names and import — no signing needed. For Sage 50: rename to match the Type-code column set. For QuickBooks Online: rename to Date, Description, Amount. The debit→negative signing step is only needed if you're targeting QuickBooks Online's single-Amount format or Xero's 3-column layout with a signed Amount, and your export has separate positive Debit/Credit columns — that arithmetic is done upstream (in Excel or your export tool), not here.
-
Fix date format issues. For trailing weekday text (
20/11/2024 TUE), use Find & Replace regex:^(\d{2}/\d{2}/\d{4}).*$→$1. For a full DD/MM ↔ MM/DD reorder, a multi-capture-group regex is needed — it's a careful step, not a one-click operation. See Fix Accounting CSV Date Format Errors for the exact patterns for each platform. -
Split for Xero row limits. If your file exceeds ~500 rows and you're targeting Xero, split it before import. See Split CSV for Xero: Working Around the Row Limit.
For diagnosing why your QuickBooks import is being rejected specifically, see Why QuickBooks Rejects Your CSV Import. For encoding errors across any accounting platform, see Fix Accounting CSV Encoding Errors.
Additional Resources
- Intuit: Manually upload transactions in QuickBooks Online — Official guide for QBO CSV bank upload, including the 1,000-line-per-upload limit and supported file types.
- Intuit: Import and export data in QuickBooks Desktop — Confirms Desktop imports CSV for lists only; bank transactions require Web Connect (.qbo) or IIF.
- Xero Central: About manually importing bank statements — Xero's overview of manual bank statement import, covering supported file types including CSV. The 3-column/4-column layout and date format spec in the Xero section above are verified facts; this URL confirms Xero accepts CSV bank-statement imports.
- Sage 50 UK: Bank Feeds — importing a statement file — Official Sage KB for the Bank Feeds CSV/OFX manual import path (date-order prompt, direction toggle).
- Sage 50 US: Import a Bank Statement — US Sage 50 OFX/QFX bank statement import wizard.
- Sage Business Cloud: Supported file formats for bank statement imports — Official Sage KB confirming Business Cloud accepts CSV (3-col and 4-col layouts), OFX, QIF, and XLS.
- RFC 4180: Common Format and MIME Type for CSV Files — The authoritative CSV specification. Defines delimiter, quoting, and encoding conventions that all three platforms' importers enforce.
- Finance CSV Data Prep: Complete Guide for Accounting Imports — Full reference covering QuickBooks, Xero, NetSuite, Stripe, SAP, and bank export formats, including PCI-DSS/SOC2 considerations and the year-end prep workflow.
FAQ
Reshape Your CSV for Any Platform
Fix encoding and delimiter — Format Checker outputs UTF-8, comma-delimited automatically
Strip currency symbols and thousand separators in one regex pass
Rename headers to match each platform's expected column structure
Handle zeros, parens-negatives, and trailing date text without re-exporting
Split files before Xero import to stay within row guidance
Your file never leaves your browser — no upload, no server, no retention
Check your file's format before import →
For a root-cause breakdown of why QuickBooks specifically rejects CSV imports, see Why QuickBooks Rejects Your CSV Import. For the complete accounting CSV workflow covering all major platforms, start at the Finance CSV Data Prep guide.