, `£`, thousand commas, and parentheses-negatives (`($50.00)` → `-50.00`) | Strip symbols; EU comma-decimal (`,` as decimal) → period | Strip symbols |\n| 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) |\n| Encoding | UTF-8 recommended | **UTF-8 required** | CSV UTF-8 |\n| Row guidance | Online: up to **1,000 lines per upload** | Practical guidance: keep files under ~500 rows; see [Xero row-limit split guide](/blog/xero-csv-row-limit-split) | — |\n\n**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.\n\n---\n\n## QuickBooks CSV Format Requirements\n\nQuickBooks 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](https://quickbooks.intuit.com/learn-support/en-us/help-article/import-transactions/manually-upload-transactions-quickbooks-online/L0rE9OXBz_US_en_US)).\n\nFour specific formatting failures cause most QuickBooks Online import rejections. Currency symbols (` QuickBooks vs Xero vs Sage: CSV Format Differences Compared - SplitForge Blog , `£`) 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.\n\n**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](https://quickbooks.intuit.com/learn-support/en-us/help-article/import-export-data-files/import-export-data-quickbooks-desktop/L9KS42UxP_US_en_US)). Desktop does support CSV import for non-transaction lists (customers, vendors, items) — but for bank transactions, CSV is not an accepted format.\n\nFor a full walk-through of QuickBooks Online CSV import errors, see [QuickBooks CSV Import Errors: Fix Every Common Failure](/blog/quickbooks-csv-import-errors-fix).\n\n---\n\n## Xero CSV Format Requirements\n\nXero'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.\n\n**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.\n\n**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.\n\nXero'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](/blog/csv-date-format-errors-fix) for the exact pattern.\n\nXero 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](/blog/xero-csv-row-limit-split).\n\n---\n\n## Sage CSV Format Requirements\n\nThe 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.\n\n**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](https://gb-kb.sage.com/portal/app/portlets/results/viewsolution.jsp?solutionid=240109094532807)).\n\n**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](https://gb-kb.sage.com/portal/app/portlets/results/viewsolution.jsp?solutionid=200427112602335)). 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.\n\n**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](https://help-sage50.na.sage.com/en-us/2019/Content/General_Ledger/Online_Banking/Import_a_Bank_Statement.htm)). 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.\n\n**Sage Business Cloud** accepts CSV, OFX, QIF, and XLS for manual bank-statement imports ([Sage Business Cloud: Supported file formats for bank statement imports](https://gb-kb.sage.com/portal/app/portlets/results/viewsolution.jsp?solutionid=240718093942637)). 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.\n\nThe 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.\n\nFor import failures specific to Sage, see [Fix Sage CSV Import Errors: Sage 50 and Business Cloud Guide](/blog/sage-csv-import-errors-fix).\n\n---\n\n## How to Reshape Your CSV for Each Platform\n\nBefore 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.\n\n1. **Fix encoding and delimiter first.** Open your file in [Format Checker](/tools/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.\n\n2. **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.\n\n3. **Handle zeros (QuickBooks Online only).** In Find & Replace, enable Match Whole Cell. Find `0`, replace with empty. QuickBooks Online rejects `0` in amount cells; Xero and Sage do not have this restriction.\n\n4. **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.\n\n5. **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.\n\n6. **Fix date format issues.** For trailing weekday text (`20/11/2024 TUE`), use Find & Replace regex: `^(\\d{2}/\\d{2}/\\d{4}).* QuickBooks vs Xero vs Sage: CSV Format Differences Compared - SplitForge Blog → `$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](/blog/csv-date-format-errors-fix) for the exact patterns for each platform.\n\n7. **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](/blog/xero-csv-row-limit-split).\n\nFor diagnosing why your QuickBooks import is being rejected specifically, see [Why QuickBooks Rejects Your CSV Import](/blog/why-quickbooks-rejects-csv-imports). For encoding errors across any accounting platform, see [Fix Accounting CSV Encoding Errors](/blog/accounting-csv-encoding-fix).\n\n---\n\n## Additional Resources\n\n- [Intuit: Manually upload transactions in QuickBooks Online](https://quickbooks.intuit.com/learn-support/en-us/help-article/import-transactions/manually-upload-transactions-quickbooks-online/L0rE9OXBz_US_en_US) — Official guide for QBO CSV bank upload, including the 1,000-line-per-upload limit and supported file types.\n- [Intuit: Import and export data in QuickBooks Desktop](https://quickbooks.intuit.com/learn-support/en-us/help-article/import-export-data-files/import-export-data-quickbooks-desktop/L9KS42UxP_US_en_US) — Confirms Desktop imports CSV for lists only; bank transactions require Web Connect (.qbo) or IIF.\n- [Xero Central: About manually importing bank statements](https://central.xero.com/s/article/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.\n- [Sage 50 UK: Bank Feeds — importing a statement file](https://gb-kb.sage.com/portal/app/portlets/results/viewsolution.jsp?solutionid=240109094532807) — Official Sage KB for the Bank Feeds CSV/OFX manual import path (date-order prompt, direction toggle).\n- [Sage 50 US: Import a Bank Statement](https://help-sage50.na.sage.com/en-us/2019/Content/General_Ledger/Online_Banking/Import_a_Bank_Statement.htm) — US Sage 50 OFX/QFX bank statement import wizard.\n- [Sage Business Cloud: Supported file formats for bank statement imports](https://gb-kb.sage.com/portal/app/portlets/results/viewsolution.jsp?solutionid=240718093942637) — Official Sage KB confirming Business Cloud accepts CSV (3-col and 4-col layouts), OFX, QIF, and XLS.\n- [RFC 4180: Common Format and MIME Type for CSV Files](https://www.rfc-editor.org/rfc/rfc4180) — The authoritative CSV specification. Defines delimiter, quoting, and encoding conventions that all three platforms' importers enforce.\n- [Finance CSV Data Prep: Complete Guide for Accounting Imports](/blog/finance-csv-data-prep-complete-guide) — Full reference covering QuickBooks, Xero, NetSuite, Stripe, SAP, and bank export formats, including PCI-DSS/SOC2 considerations and the year-end prep workflow.\n\n---\n\n## FAQ\n\n### Can I use the same CSV file for QuickBooks and Xero?\n\nNot directly — the amount column structure is different. QuickBooks Online uses a single signed Amount column; Xero accepts either a signed Amount or a positive Debit/Credit pair. You can prepare the same source data for both platforms, but you'll need two different column layouts. For Xero's 4-column layout, rename your Debit and Credit headers and leave the values positive — no arithmetic needed.\n\n### Does QuickBooks Desktop import CSV files for bank transactions?\n\nNo. QuickBooks Desktop supports `.qbo` (Web Connect) for bank feed imports and IIF (Intuit Interchange Format) for manual transaction imports. Standard CSV is not accepted for bank or transaction data in Desktop. QuickBooks Desktop does support CSV import for non-transaction lists such as customers, vendors, and items — but for bank statements or journal entries, CSV is not an option. QuickBooks Online does support CSV import.\n\n### Why does my amount column get rejected when the numbers look correct?\n\nThe most common cause is non-numeric characters: currency symbols (` QuickBooks vs Xero vs Sage: CSV Format Differences Compared - SplitForge Blog , `£`), thousand separators (`,`), or parentheses-negatives (`($50.00)`). All three make the field a text string rather than a number. Use Find & Replace in regex mode with the pattern `[$£,]` to strip symbols and commas. For parentheses-negatives, use the pattern `\\((\\d+(?:\\.\\d+)?)\\)` and replace with `-$1`.\n\n### What is the BP/BR Type code in Sage 50 CSV imports?\n\nBP (Bank Payment, money out) and BR (Bank Receipt, money in) are Type codes used in the **Sage 50 UK** audit-trail CSV import path. Instead of a signed Amount column, direction is carried by the Type field and the Amount is always a positive number. Note: the newer Sage 50 UK Bank Feeds import path uses a date-order prompt and a direction toggle instead of Type codes; US Sage 50 uses an OFX/QFX wizard, not a BP/BR CSV at all.\n\n### How do I handle separate Debit and Credit columns when the platform wants a single Amount?\n\nFor Xero, use the 4-column layout (Date, Description, Debit, Credit with positive values) — no signing needed, just rename the headers to match Xero's expected column names. For Sage 50, use the BP/BR Type code layout — again, positive amounts only, no signing. If you specifically need a single signed Amount column (for QuickBooks Online single-Amount format or Xero's 3-column layout), and your source has separate positive Debit/Credit columns, that arithmetic is done upstream — in Excel with a formula, or in your export tool — before the file reaches SplitForge. SplitForge then handles currency stripping, header renaming, and encoding on the resulting file.\n\n### Why does Xero reject my date format when it looks correct?\n\nXero rejects several date formats that other platforms accept: ISO 8601 (`YYYY-MM-DD`), named months (`15-Mar-2026`), and two-digit years. It also rejects trailing weekday text (`20/11/2024 TUE`). The accepted format is region-locked to your Xero organisation's settings (DD/MM/YYYY for UK/AU/NZ organisations, MM/DD/YYYY for US). Use Find & Replace to strip trailing weekday text, and see [Fix Accounting CSV Date Format Errors](/blog/csv-date-format-errors-fix) for the exact regex patterns for DD/MM ↔ MM/DD reordering.\n\n### Should I validate my CSV before importing to any of these platforms?\n\nYes — especially for files with over 50 rows where a single bad row causes a full-file rejection. SplitForge's Data Validator runs a `financial-transactions` preset that checks for missing required fields (TransactionID, Amount, Date), validates that Amount is decimal and non-negative, and confirms Date fields parse as valid dates. It's not a platform-specific validator — it won't check Sage's BP/BR column or Xero's 4-column layout — but it catches the most common structural issues before you hit any importer.\n\n---\n\n## Reshape Your CSV for Any Platform\n\n✅ Fix encoding and delimiter — Format Checker outputs UTF-8, comma-delimited automatically \n✅ Strip currency symbols and thousand separators in one regex pass \n✅ Rename headers to match each platform's expected column structure \n✅ Handle zeros, parens-negatives, and trailing date text without re-exporting \n✅ Split files before Xero import to stay within row guidance \n✅ Your file never leaves your browser — no upload, no server, no retention \n\n[Check your file's format before import →](/tools/format-checker)\n\nFor a root-cause breakdown of why QuickBooks specifically rejects CSV imports, see [Why QuickBooks Rejects Your CSV Import](/blog/why-quickbooks-rejects-csv-imports). For the complete accounting CSV workflow covering all major platforms, start at the [Finance CSV Data Prep guide](/blog/finance-csv-data-prep-complete-guide).\n"};
Navigated to blog › quickbooks-vs-xero-vs-sage-csv-format
Back to Blog
csv-import-guides

QuickBooks vs Xero vs Sage: CSV Format Differences Compared

May 25, 2026
13
By SplitForge Team

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

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.

DimensionQuickBooksXeroSage
Native transaction CSV importOnline: yes (map columns). Desktop: no.qbo Web Connect or IIF onlyYesSage 50: CSV, OFX, QBO. Business Cloud: CSV
Amount structureSingle 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 formatRegion-locked; consistent format requiredRegion-locked; ISO 8601 (YYYY-MM-DD), named months (15-Mar-2026), and two-digit years all rejectedRegion-locked (Sage 50: Company Preferences → Regional Settings)
Currency symbolsStrip $, £, thousand commas, and parentheses-negatives (($50.00)-50.00)Strip symbols; EU comma-decimal (, as decimal) → periodStrip symbols
Header rowRequired; columns mapped by QuickBooks Online during importRequired; column order matters for the 4-column layoutRequired; column set defined by the Type code (UK) or OFX wizard (US)
EncodingUTF-8 recommendedUTF-8 requiredCSV UTF-8
Row guidanceOnline: up to 1,000 lines per uploadPractical 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.

  1. 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.

  2. 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.

  3. Handle zeros (QuickBooks Online only). In Find & Replace, enable Match Whole Cell. Find 0, replace with empty. QuickBooks Online rejects 0 in amount cells; Xero and Sage do not have this restriction.

  4. 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.

  5. 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.

  6. 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.

  7. 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


FAQ

Not directly — the amount column structure is different. QuickBooks Online uses a single signed Amount column; Xero accepts either a signed Amount or a positive Debit/Credit pair. You can prepare the same source data for both platforms, but you'll need two different column layouts. For Xero's 4-column layout, rename your Debit and Credit headers and leave the values positive — no arithmetic needed.

No. QuickBooks Desktop supports .qbo (Web Connect) for bank feed imports and IIF (Intuit Interchange Format) for manual transaction imports. Standard CSV is not accepted for bank or transaction data in Desktop. QuickBooks Desktop does support CSV import for non-transaction lists such as customers, vendors, and items — but for bank statements or journal entries, CSV is not an option. QuickBooks Online does support CSV import.

The most common cause is non-numeric characters: currency symbols ($, £), thousand separators (,), or parentheses-negatives (($50.00)). All three make the field a text string rather than a number. Use Find & Replace in regex mode with the pattern [$£,] to strip symbols and commas. For parentheses-negatives, use the pattern \((\d+(?:\.\d+)?)\) and replace with -$1.

BP (Bank Payment, money out) and BR (Bank Receipt, money in) are Type codes used in the Sage 50 UK audit-trail CSV import path. Instead of a signed Amount column, direction is carried by the Type field and the Amount is always a positive number. Note: the newer Sage 50 UK Bank Feeds import path uses a date-order prompt and a direction toggle instead of Type codes; US Sage 50 uses an OFX/QFX wizard, not a BP/BR CSV at all.

For Xero, use the 4-column layout (Date, Description, Debit, Credit with positive values) — no signing needed, just rename the headers to match Xero's expected column names. For Sage 50, use the BP/BR Type code layout — again, positive amounts only, no signing. If you specifically need a single signed Amount column (for QuickBooks Online single-Amount format or Xero's 3-column layout), and your source has separate positive Debit/Credit columns, that arithmetic is done upstream — in Excel with a formula, or in your export tool — before the file reaches SplitForge. SplitForge then handles currency stripping, header renaming, and encoding on the resulting file.

Xero rejects several date formats that other platforms accept: ISO 8601 (YYYY-MM-DD), named months (15-Mar-2026), and two-digit years. It also rejects trailing weekday text (20/11/2024 TUE). The accepted format is region-locked to your Xero organisation's settings (DD/MM/YYYY for UK/AU/NZ organisations, MM/DD/YYYY for US). Use Find & Replace to strip trailing weekday text, and see Fix Accounting CSV Date Format Errors for the exact regex patterns for DD/MM ↔ MM/DD reordering.

Yes — especially for files with over 50 rows where a single bad row causes a full-file rejection. SplitForge's Data Validator runs a financial-transactions preset that checks for missing required fields (TransactionID, Amount, Date), validates that Amount is decimal and non-negative, and confirms Date fields parse as valid dates. It's not a platform-specific validator — it won't check Sage's BP/BR column or Xero's 4-column layout — but it catches the most common structural issues before you hit any importer.


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.

Continue Reading

More guides to help you work smarter with your data

csv-guides

Do You Need a Database for a Large CSV File? (2026 Answer)

The internet's answer to every big CSV is 'import it into a database.' Sometimes that's right. Usually it's a weekend of setup to answer one question. Here's the honest decision.

Read More
csv-guides

How to Open a Large CSV File — Even 10 GB, No Database (2026)

Excel dies at 1,048,576 rows, text editors choke, and 'just use a database' is a weekend project. Here's every real way to open a huge CSV — receipts included.

Read More
excel-guides

Excel File Too Large to Open? Fix Every Memory Error (2026)

Excel freezes, throws 'not enough memory,' or crashes outright — on a file that's only 40 MB. Here's why file size lies about memory, and the fix per error.

Read More