Skip to main content

QuickBooks Bank CSV: 3-Column vs 4-Column Format (Which One and How to Convert)

9 min readPipeSheets Team

QuickBooks Online accepts bank transactions in exactly two CSV layouts. The 3-column format is Date, Description, Amount, where the Amount is signed: positive for money in, negative for money out. The 4-column format is Date, Description, Credit, Debit, where each transaction fills one of the two money columns and leaves the other blank. Your bank export almost never matches either one exactly, so the real job is picking the closer target and reshaping your file to hit it. This guide covers how to choose, how to convert in both directions, and the exact QuickBooks rules that trip up most imports.

The two layouts QuickBooks Online accepts

QuickBooks Online will only read a bank-transaction CSV that resolves to one of two shapes. Both start with Date and Description. The difference is entirely in how the money is represented.

3-column format: Date, Description, Amount

One Amount column holds a signed number. Positive values are deposits (money in). Negative values are payments or withdrawals (money out). There is no separate column for direction, so the sign carries all the meaning. The header must be exactly Amount, with no extra words like Amount (USD).

Date,Description,Amount
07/01/2026,Payroll deposit,2400.00
07/02/2026,Coffee shop,-4.75
07/03/2026,Rent payment,-1850.00
07/05/2026,Client refund,120.00

4-column format: Date, Description, Credit, Debit

Money out and money in live in separate columns. For each row you fill exactly one of Credit or Debit and leave the other cell blank. No minus signs are used because the column itself signals direction. The headers must be exactly Credit and Debit.

Date,Description,Credit,Debit
07/01/2026,Payroll deposit,2400.00,
07/02/2026,Coffee shop,,4.75
07/03/2026,Rent payment,,1850.00
07/05/2026,Client refund,120.00,

Warning: In a QuickBooks bank CSV, Credit means money into the account and Debit means money out. Many bank exports use the opposite banker's convention, where a debit is a deposit into your account. If your imported transactions come in with income and spending flipped, this is almost always why. Do a 5-row test import before committing the whole file.

Which format should you use?

Neither layout is more correct. Pick the one that is fewer edits away from your raw export, because every edit is a chance to introduce an error.

Choose based on what your bank already gives you:

  • If your export already has one signed amount column (positive deposits, negative withdrawals), use the 3-column format. You are mostly deleting extra columns.
  • If your export has two separate money columns already, use the 4-column format and keep them, after confirming which column is money in versus money out.
  • If your export shows money out as a positive number in a Withdrawal or Debit column and money in as a positive number in a Deposit or Credit column, the 4-column format is closest.
  • If you plan to reuse the same template every month, standardize on 3-column. A single signed column is simpler to audit and less prone to filling the wrong side.

How to tell which one your bank export is closest to

Open the raw CSV and look at the money columns only. Bank exports fall into a few recognizable patterns.

Match your file to one of these:

  • One column named Amount, Transaction Amount, or Value with both positive and negative numbers, means you are already close to 3-column.
  • Two columns named Debit and Credit, or Money Out and Money In, or Withdrawals and Deposits, means you are close to 4-column.
  • One column of all-positive amounts plus a separate Type or Dr/Cr indicator column, means you can build either format from the indicator.
  • A Balance or Running Balance column present alongside the amount, means you have an extra column to drop regardless of which target you choose.

How to convert a debit/credit export to a signed Amount (4 to 3)

This is the most common conversion. Your bank gives you two positive columns and you want a single signed Amount. The rule: Amount equals Credit minus Debit, treating blanks as zero. Money in stays positive, money out becomes negative.

Before (bank export, 4 columns of positives):
Date,Description,Credit,Debit
07/01/2026,Payroll deposit,2400.00,
07/02/2026,Coffee shop,,4.75
07/03/2026,Rent payment,,1850.00

After (3-column signed):
Date,Description,Amount
07/01/2026,Payroll deposit,2400.00
07/02/2026,Coffee shop,-4.75
07/03/2026,Rent payment,-1850.00

In a spreadsheet, add a new Amount column with a formula like Credit cell minus Debit cell, where empty cells count as zero. Then paste the result back as values, delete the Credit and Debit columns, and delete the formula column. If your bank reverses the banker's convention (debit is a deposit), swap the subtraction order so deposits end up positive.

How to convert a signed Amount to debit/credit columns (3 to 4)

Less common, but useful if you prefer separate columns or if the 4-column layout imports more reliably for your account type. Split the sign: positive amounts go to Credit, negative amounts go to Debit as a positive number, and each row leaves the other cell blank.

Before (3-column signed):
Date,Description,Amount
07/01/2026,Payroll deposit,2400.00
07/02/2026,Coffee shop,-4.75
07/03/2026,Rent payment,-1850.00

After (4-column, no minus signs):
Date,Description,Credit,Debit
07/01/2026,Payroll deposit,2400.00,
07/02/2026,Coffee shop,,4.75
07/03/2026,Rent payment,,1850.00

Credit gets the amount when it is positive, otherwise blank. Debit gets the absolute value when the amount is negative, otherwise blank. Never put a zero in these cells and never put a minus sign in the Debit column, QuickBooks expects the direction to come from the column, not the sign.

Common bank-export mismatches that break the import

Even after you pick a layout, raw bank files carry baggage that QuickBooks rejects or misreads. These are the recurring offenders.

Extra columns

Balance, Running Balance, Check Number, Reference, Category, and Memo columns are common in bank exports. QuickBooks wants only the columns for your chosen layout. Drop everything else. A Balance column is especially dangerous because a careless mapping can send the running balance in as the transaction amount.

Amounts formatted as text

QuickBooks expects only digits, a decimal point, and a minus sign in money fields. Strip currency symbols like $, strip thousand separators (the commas in 1,250.00), and remove any stray text. A value like $1,250.00 must become 1250.00.

Wrong (QuickBooks rejects or misreads these):
$1,250.00
(45.00)
45.00-
USD 300

Right:
1250.00
-45.00
-45.00
300

Negatives shown in parentheses or with a trailing minus

Accounting-style exports write negatives as (45.00), and some banks write 45.00- with the minus on the end. QuickBooks reads neither as a negative number. Convert both to a leading minus: -45.00. This matters only for the 3-column signed format; in the 4-column format you would move the value to the Debit column instead.

Running-balance rows, report footers, and blank rows

Exports that come from an on-screen statement often include a header block above the data, an Opening Balance or Closing Balance row, subtotal or Total rows at the bottom, and blank separator rows. Every one of these is a non-transaction line that either errors out or imports as garbage. Delete them so the file is a clean rectangle: one header row, then one transaction per row, nothing else.

Dates in mixed or unexpected formats

Use one consistent date format for every row, matching your QuickBooks company region (US files typically use MM/DD/YYYY). QuickBooks rejects files where some rows read 3/5/2026 and others read 2026-03-05. If your bank appends the day of the week to the date (for example 07/01/2026 TUE), split that into its own column or remove it, because the extra text breaks date parsing.

Numbers inside the Description

QuickBooks recommends removing numbers from the Description column. Long numeric strings (card numbers, reference IDs) inside descriptions can confuse the parser about which column holds the amount. Clean the description down to the payee or memo text.

QuickBooks Online CSV limits to know

Hard requirements from Intuit's formatting guidance:

  • The file must be in English and 350 KB or smaller. Larger statements need to be split by date range into smaller files.
  • Up to 1,000 transaction lines per upload. Split anything longer.
  • Exactly the 3-column (Date, Description, Amount) or 4-column (Date, Description, Credit, Debit) layout, with those exact header words.
  • Leave any zero-value money cell blank rather than entering 0.
  • Money fields contain only digits, a decimal point, and a minus sign (3-column only).

Pre-import checklist

Run through this before you upload:

  • You picked one layout (3-column signed OR 4-column credit/debit) and the file matches it exactly.
  • Headers are precise: Date, Description, and either Amount or Credit/Debit, no extra words.
  • Every extra column (Balance, Check Number, Category, Memo, Reference) is deleted.
  • Currency symbols and thousand separators are stripped from all money fields.
  • Parentheses negatives and trailing-minus negatives are converted to leading-minus (3-column) or moved to Debit (4-column).
  • Zero-value money cells are blank, not 0.
  • Header blocks, opening/closing balance rows, totals, footers, and blank rows are removed.
  • Every date uses one consistent format matching your QuickBooks region.
  • Descriptions have long numeric strings removed.
  • The file is under 350 KB and 1,000 lines.
  • You ran a 5-row test import and confirmed money in and money out landed on the correct sides.

Doing the conversion without wrestling Excel

Most of this reshaping is repetitive: drop columns, strip symbols, normalize nulls, remove blank rows, and standardize headers. Excel can do it, but it also fights you, silently trimming leading zeros from reference fields and reformatting dates as you type. PipeSheets is built for exactly this prep. Upload the raw bank export, drop the columns you do not need, run find and replace (including regex) to strip $ signs, commas, and parentheses, standardize null values, and remove empty rows, then preview the before and after with detected column types before you download a clean CSV.

For the recurring cleanup, the Quick Clean preset trims whitespace across every column, standardizes null values, removes fully empty rows and columns, and normalizes headers in one click, which handles the report footers, blank separator rows, and stray whitespace that bank statements are full of. From there you finish the layout-specific work (choosing 3-column versus 4-column and setting the sign) and export a file that lands cleanly in QuickBooks. Because PipeSheets does not mangle leading zeros or dates the way Excel does, the values you clean are the values that import.

The difference between a smooth import and a support ticket is almost always the money columns. Decide up front whether you are targeting the 3-column signed Amount or the 4-column Credit/Debit split, convert once, verify the direction with a small test, and run the checklist. Get those right and QuickBooks reads the rest of the file without complaint.

Try the automated solution

PipeSheets can fix these issues automatically. Clean your first file free.

Clean Your CSV