Quickbooks import guide
QuickBooks Online can import bank and credit card transactions from a file when a direct connection isn't available, doesn't contain the history you need, or simply isn't the workflow you want to use.
For CSV files, the important part is getting the structure right before uploading. QuickBooks expects a small, specific set of fields rather than a complete export from another system. QuickBooks
This guide covers the general CSV import process. It isn't specific to Stripe or BalanceFlow - the same basic process applies whenever you're preparing transaction data from another system for QuickBooks.
When to use a CSV import
A CSV import is useful when you already have transaction data outside QuickBooks and need to bring it into Bank transactions.
Common examples include historical transactions, exports from payment processors, transactions from accounts that can't be connected directly, and data that needs to be transformed before it reaches QuickBooks.
QuickBooks supports several file types for manual transaction uploads, including CSV, QBO, QFX and OFX. QuickBooks
CSV is particularly useful when the source data doesn't already come in a QuickBooks-specific format, because you can prepare the columns yourself.
Choose what you're importing
Before formatting anything, decide what each row in the resulting file represents.
For payment platforms, for example, there can be an important difference between importing individual customer transactions and importing only payouts.
An individual-transaction import gives you more detail, but it also means accounting for related fees, refunds and other activity. A payout-based import is simpler and follows the amounts transferred to the bank more closely, but doesn't preserve the same transaction-level detail. This distinction is also highlighted in third-party Stripe migration guidance. PipeSheets
Neither approach changes QuickBooks' CSV requirements. It changes the data you prepare before reaching the import stage.
QuickBooks CSV formats
QuickBooks Online accepts two basic CSV layouts for bank transaction uploads. QuickBooks
Three-column format
The simplest format contains:
| Date | Description | Amount |
|---|---|---|
| 09/15/2026 | Customer payment | 100.00 |
| 09/15/2026 | Processing fee | -3.20 |
Positive amounts represent money in and negative amounts represent money out. QuickBooks
Four-column format
You can alternatively separate incoming and outgoing money:
| Date | Description | Credit | Debit |
|---|---|---|---|
| 09/15/2026 | Customer payment | 100.00 | |
| 09/15/2026 | Processing fee | 3.20 |
Only one of the Credit or Debit fields should contain an amount for a particular transaction. The other should remain empty. QuickBooks
For many transformations, the three-column format is easier to produce and review.
Prepare the date
Every transaction needs a date, and the dates in the file should use a consistent format.
Don't leave timestamps, timezone information or additional text attached to the date. If your source provides something like a full UTC timestamp, convert it to the appropriate local transaction date before importing.
This can matter around midnight and at month or year boundaries. A transaction recorded late at night in UTC can belong to a different calendar day in your accounting timezone. PipeSheets
Intuit's current documentation requires consistent date formatting and recommends dd/mm/yyyy, although the mapping step allows QuickBooks to interpret the date column during import. QuickBooks
Prepare the amounts
The values in your CSV need to represent the amounts you actually want QuickBooks to record.
With the three-column format:
positive = money in
negative = money out
With the four-column format, put each value into either Credit or Debit and leave the other field empty. QuickBooks
Also check how your source system represents money. Some exports use decimal currency values directly, while others may use a different representation that needs to be normalized before import.
Don't assume that the number appearing in a source CSV already means what QuickBooks expects it to mean.
Decide how to handle fees
Payment processing creates another decision: whether to record the gross payment and fee separately or import only the resulting net amount.
Suppose a customer pays $100 and the processor keeps $3.20.
A net representation might contain:
Payment: $96.80
A split representation instead contains:
Payment: $100.00
Processing fee: -$3.20
Both produce the same net movement of $96.80, but they preserve different accounting information.
If you want processing fees visible separately, prepare them as separate transactions rather than losing them inside the net value.
For a practical example, see How to split fees for QuickBooks import.
Keep the file simple
A source export may contain dozens of columns. QuickBooks doesn't need all of them for a bank transaction CSV.
Removing irrelevant fields makes the import easier to understand and reduces the chance of mapping the wrong column.
Intuit specifically identifies Date, Description, and Amount as the required fields for the three-column format and recommends removing unnecessary columns when troubleshooting mapping problems. QuickBooks
If you need information such as an external transaction ID for your own reference, you can incorporate useful identifying information into the description before creating the import file rather than carrying the complete source dataset into QuickBooks.
Check descriptions
Descriptions should help you recognize transactions during review and reconciliation.
They don't need to contain every piece of metadata from the source system.
Intuit's current troubleshooting documentation notes that unexpected description formatting can cause problems and recommends simplifying the CSV when imports fail. QuickBooks
A useful description generally tells you enough to understand where the transaction came from without turning the field into a dump of the original record.
Upload the CSV
Once the file is ready, open Bank transactions in QuickBooks Online.
Select the account you're importing into, then choose Upload from file from the account connection options.
Upload your CSV and select the QuickBooks account where these transactions should appear. QuickBooks
[SCREENSHOT: QuickBooks Online Bank transactions page with the Upload from file option visible. Avoid showing unrelated account or business information.]
Map the columns
QuickBooks will ask which columns in your file correspond to its transaction fields.
For a three-column file, map:
Date → Date
Description → Description
Amount → Amount
For a four-column file, map the corresponding Credit and Debit fields instead.
Review these mappings rather than assuming QuickBooks detected everything correctly. Incorrect column mapping is one of the issues Intuit lists for failed CSV imports. QuickBooks
[SCREENSHOT: QuickBooks CSV mapping screen showing Date, Description and Amount correctly mapped from a three-column CSV.]
Review before importing
QuickBooks gives you an opportunity to select the transactions you want to import before completing the upload. QuickBooks
Use it.
Check the date range, look at a few amounts, and make sure incoming and outgoing transactions have the correct signs.
This is especially important when you're importing data that may overlap with transactions already present in QuickBooks.
A technically valid CSV can still contain the wrong transactions.
[SCREENSHOT: QuickBooks transaction-selection screen immediately before confirming a CSV import. Show several transactions with their dates, descriptions and amounts.]
Watch for duplicates
CSV imports deserve extra care when the same account or source already has activity in QuickBooks.
Before importing, establish a clear boundary between existing and new data. For example, if QuickBooks already contains transactions beginning January 1, don't casually upload an export that starts several months earlier and continues through the same period.
If you're performing a historical migration, process defined periods separately and review each one before continuing.
See Import historical Stripe transactions for an example of this batch-by-batch approach.
Large imports should be divided
Don't turn several years of history into one enormous CSV.
QuickBooks' current U.S. documentation allows up to 1,000 transaction lines per manual upload and recommends shortening the date range for larger imports. QuickBooks
Even below the technical limit, smaller files are easier to verify.
For historical data, divide the history into sensible periods - years for moderate volumes, or quarters and months for higher-volume accounts.
Then work sequentially:
prepare → upload → review → reconcile → continue
This gives you a clear point to stop if something doesn't look right.
Categorize and reconcile after the import
Uploading a transaction doesn't finish the accounting process.
Intuit recommends matching and categorizing imported transactions into the appropriate accounts, then reconciling them to verify that they're recorded correctly. QuickBooks
This distinction matters particularly with payment processors. The customer transaction, processing fee, processor balance and eventual bank payout can represent different parts of the same flow.
If you're importing processor transactions individually, a clearing account can help represent the money held by the processor before it reaches your bank.
See Using a clearing account for Stripe reconciliation for a concrete example.
Historical data and connected services
Direct connections can be convenient, but don't assume they provide your complete history.
For example, QuickBooks' current Stripe Connector by QuickBooks allows users to select a starting date but limits the initial historical import to up to two years. QuickBooks
That doesn't mean older transactions can't exist in QuickBooks. Manual transaction uploads are specifically supported for adding transactions from earlier periods. QuickBooks
If you have older data available as CSV, you can prepare and import it separately rather than treating the connector's historical range as the limit of your books.
Preparing repeatable imports
If you're importing from the same source regularly, the preparation process shouldn't need to be reinvented every month.
Suppose every export requires the same sequence:
select columns → convert dates → normalize amounts → calculate values → create fee rows → rename columns
Those rules can be defined once and reused.
BalanceFlow templates are designed for this kind of workflow. You define the source columns, output structure and transformations, then apply the same template to subsequent exports.
See How to create a custom CSV conversion template for the general approach.
For Stripe specifically, BalanceFlow already includes ready-made Net and Split Fee templates, and the complete workflow is covered in How to import Stripe transactions to QuickBooks.
A good import is easy to inspect
The goal isn't just to get QuickBooks to accept the CSV.
Before importing, you should be able to open the file and understand what each row means: the dates should be in the right period, amounts should have the right direction and scale, descriptions should be recognizable, and fees or other adjustments should be represented according to the accounting approach you've chosen.
Once the file is predictable, the QuickBooks part is relatively straightforward: upload it, map the fields, review the transactions, and reconcile the result.