How to import a CSV or bank statement into QuickBooks Online
CSV, OFX or PDF: the steps, every file rule in one place, the errors and their fixes, and how to check the upload
matches your statement before you post it.
Checked against Intuit’s help pages on October 14, 2026
The short answer: in QuickBooks Online, go to Bank transactions, open the arrow
next to Link account and choose Upload from file. It takes a CSV with 3 columns
(Date, Description, Amount) or 4 (Date, Description, Credit, Debit), a QBO, QFX or OFX file from your bank, or a
PDF or photo of a statement. A file can be up to 350 KB and 1,000 lines.
You don’t need a .qbo file for QuickBooks Online: a CSV works. QuickBooks Desktop is the one that needs .qbo.
Which file to use
If your bank connects to QuickBooks, it brings in recent transactions by itself, often about the last 90 days,
depending on the bank. Anything older, or from a bank that won’t connect, has to be uploaded. You have four
options:
File
Matching columns
Best for
QBO, QFX or OFXFrom your bank’s website
Not needed
Months your bank still lets you download. Intuit’s first choice.
CSVFrom your bank, or a spreadsheet you made
Every upload
Any bank that exports CSV
PDF or photoThe statement itself
QuickBooks reads it; you review
A few statements, one at a time
CSV or OFX made from PDFsFrom a statement converter
Not needed for OFX
Months or years that only exist as PDFs, many at once
QBO, QFX and OFX files also carry the payee, memo and check number where the bank includes them, and an ID for
each transaction. A CSV carries only the date, description and amount. To see what’s inside one of these files,
open it in our free QFX to CSV converter.
Upload a CSV, QBO, QFX or OFX file
First, pick the dates. So nothing comes in twice, start the file the day after the last
transaction already in that QuickBooks account. For a new account, go back as far as you need. For an account
with an opening balance, start on the opening balance date.
In QuickBooks Online, go to Bank transactions (under Accounting, or under Transactions in
some menus).
Select the account’s tile, open the arrow next to Link account and choose
Upload from file. If no account is connected yet, choose Or upload transactions
manually.
Drag in your file, or select it, and press Continue.
Choose the QuickBooks account the transactions belong to (or Add new), then
Continue.
For a CSV, answer three questions and match the columns (see below), then
Continue. QBO, QFX and OFX files skip this step.
Tick the transactions to import, press Continue, then Yes, then
Done.
No tile for the account? If you disconnected the bank, or the tile is missing, go to the
gear icon → Import data → Bank data. It opens the same upload.
Older answers look different. QuickBooks has moved this menu over the years (it used to be
Banking → Update → File upload). The steps above are today’s.
The column-matching screen
For a CSV, QuickBooks asks three questions before it reads the file:
QuickBooks asks
What to pick
Is the first row in your file a header?
Yes if the top row holds names like Date, Description, Amount.
How many columns show amounts?
One if money in and money out share a column (money out as minus numbers). Two if they’re in separate columns.
What’s the date format used in your file?
The one your file uses, for example MM/dd/yyyy for 10/31/2026. Every row must use it.
Then match Date, Description and Amount (or the two amount columns) to your file’s columns. On the preview,
money in should be positive and money out negative. If they’re the wrong way round, choose
QuickBooks’ option to reverse all values before you continue.
Credit cards
On a credit card, a purchase is money spent and a payment or refund is money received. In a one-column file,
purchases are minus numbers and payments are plus numbers:
DateDescriptionAmount
03/22/2026SHELL OIL 5521-48.60
03/28/2026PAYMENT THANK YOU500.00
Some banks’ card files come the other way round, so check the preview. Intuit also asks you to upload a card file
into the credit card account, not a bank account.
CSV rules, all in one place
Intuit spreads its rules across four help pages. Here they are together. A file that follows them looks like
this:
Delete everything else, such as Balance, Reference or Category.
One date format
Every row the same. If the date has a day of the week (20/11/2022 TUE), split it into its own column with Data → Text to Columns.
Plain numbers
No currency symbols or thousands commas: 1650.00, not $1,650.00. Set the cells to General, not Currency. Amounts of 12 digits or more are rejected.
Zero amounts
Leave the cell blank instead of 0.
Credit and Debit headers
Remove the word “amount” from them.
Description
Intuit asks you to remove numbers and special characters from it. Store numbers like SHELL OIL 5521 are common in bank files; if an upload fails, try taking them out.
On a Mac
Save as a Windows CSV: in Excel for Mac, File → Save As → Windows Comma Separated (.csv).
4 columns, money out only
QuickBooks rejects it. Add one line with a positive amount, and untick it on the last screen.
Where Intuit’s pages disagree
File types. One page lists QBO, QFX and CSV; the next lists .csv, .txt, .qbo and .ofx.
All four of CSV, QBO, QFX and OFX are listed somewhere. Excel files (.xlsx) aren’t, so save as CSV first.
Date format. Intuit recommends dd/mm/yyyy, even on its US page, while its own example uses
1/1/2018. What matters is one format throughout, and choosing that same format on the matching screen.
Subaccounts. One page says you can’t upload into a subaccount; another says you can unless
the related account is connected to the bank. If it fails, upload to the parent account.
QuickBooks Online can now read a statement itself. Intuit says it takes PDF, JPG, PNG or HEIC files, in English,
from any bank or credit card, and a scan or photo is fine. Loan and brokerage statements aren’t supported.
Go to Bank transactions → arrow next to Link account → Upload from
file.
Choose the account first, then upload the statement.
QuickBooks reads it. If it isn’t sure, it may send the statement to one of its experts to review, which Intuit
says rarely takes more than an hour.
Check the side-by-side view: the statement on the left, the rows it found on the right. Fix anything that’s
wrong.
Tick the transactions to keep and press Import. They appear in the bank feed for review.
What people using it report, which Intuit’s help doesn’t mention:
One statement at a time.
No warning if you upload the same statement twice.
A statement with several cards on it doesn’t split by card.
It sometimes stalls while reading, and works on a later try.
QuickBooks shows the statement’s beginning and ending balance next to the rows, but it doesn’t require the rows
to add up to them. That check is yours to do (see below).
Old months that only exist as PDFs
Catch-up work runs into the same wall: the bank feed only goes back so far, banks keep downloads for a limited
time, and closed accounts often have no downloads at all. What’s left is the PDF statements. You can upload them
to QuickBooks one at a time, or convert them all into a CSV or OFX file first.
Crossfooted turns PDF bank and credit card statements into a QuickBooks Online CSV or OFX file.
Every row is checked against the statement’s running balance before you download.
The CSV follows the rules above: Date, Description, Amount, one date format, plain numbers, no zero rows, and the characters QuickBooks rejects removed.
Large files are split into parts under 1,000 lines and 350 KB.
A year at once: sorted by account and month, each month checked against the next, and missing months flagged.
Uploaded transactions wait in the bank feed and don’t touch your books until you add or match them. That’s the
moment to check them against the statement:
Count. The number of rows matches the number of transactions on the statement.
Dates. The first and last rows fall inside the statement period.
Totals. Money in and money out each match the statement’s totals.
Balance. Opening balance + money in − money out = closing balance.
Repeats. Nothing the bank feed already brought in, and nothing from an earlier upload.
Why totals alone can miss a mistake
Say a deposit of 1,250.00 was read as 1,520.00, and another deposit of 480.00 was read as 210.00. One is 270.00
too high and the other 270.00 too low, so the count, the money-in total and the closing balance all still match.
Two rows are wrong, and none of those checks shows it.
What catches it is the running balance. Most statements print the balance after each transaction: work it out
row by row and compare. The first row where yours and the bank’s differ is the mistake. That is the check
Crossfooted runs on every row of every statement. For the full method, see
how to reconcile a bank statement.
Errors and fixes
QuickBooks says
What it means and what to do
The uploaded file contains invalid transaction amount information.
An amount has 12 or more digits. Fix that row.
The uploaded file is of a different type than these accounts.
For example, a savings file going into a checking account. Choose the matching account.
A message about a parent account or subaccount
Disconnect the connected account, upload, then connect it again.
An Online Banking update is currently in progress
Wait for it to finish, then try again.
We were unable to upload the file. Please start over… / Please click Save again…
It timed out, or QuickBooks had a problem on its side. Try again.
Bank Error
Shorten the date range, or try another file type.
The upload fails with no reason
Check the rules above: size and line count, extra columns, rows above the header or totals at the bottom, mixed date formats, currency symbols, special characters, and on a Mac, Windows CSV.
Amounts come in wrong, like 448,99
The file uses commas for decimals (448.989,60). Change the numbers to 448989.60 first: QuickBooks lets you choose the date format, not the number format.
After the upload
Review in the bank feed. Add, match or exclude each transaction. Bank rules you set up
beforehand can categorize them as they arrive.
Categories come from you, not the file. The bank upload only reads date, description and
amount, so leave category columns out and let bank rules or your review do it.
Then reconcile each month against the statement’s closing balance. To keep the statement
with the reconciliation, attach it when you finish reconciling.
Using QuickBooks Desktop? Desktop’s CSV import is for lists like customers, vendors and
items, not bank transactions. Bank data goes into Desktop as a .qbo file from your bank, and Desktop has no PDF
upload.
Questions
How do I convert a CSV file to a QBO file?
For QuickBooks Online you usually don’t need to: upload the CSV as it is, and match the columns once. A QBO
or OFX file only saves you that step. QuickBooks Desktop does need a .qbo file, and it checks that the file
comes from a bank in Intuit’s Web Connect program, so the safest .qbo is the one your bank offers for
download.
Can I import data from Excel into QuickBooks Online?
Yes, as a CSV. In Excel, choose File → Save As → CSV, keep only the 3 or 4 columns QuickBooks wants, then
upload it from Bank transactions. An .xlsx file can’t be uploaded there directly.
Why isn’t QuickBooks importing all my bank transactions?
The usual reasons: the bank connection only reaches back a limited time (often about 90 days); the file has
more than 1,000 lines; some rows were unticked or excluded as
duplicates; or a date in a different format was misread. Compare the row count with the statement to find
which.
Can I import CSV bank transactions into QuickBooks Desktop?
No. Desktop imports bank transactions from .qbo (Web Connect) files only. Its CSV import, through Intuit’s
Excel and CSV toolkit, is for lists like customers, vendors and items.
How do I convert a PDF bank statement to CSV?
QuickBooks Online can read the PDF itself, one statement at a time, but it doesn’t give you a CSV. To get a
file you can check and keep, or to do many statements at once, use a converter. Crossfooted gives you a
QuickBooks Online CSV or OFX (see PDF to QuickBooks Online), or
a plain spreadsheet (see bank statement to Excel).
Can I import a CSV from a Mac?
Yes, but save it as a Windows CSV first: in Excel for Mac, File → Save As → Windows Comma Separated (.csv).
Intuit asks Mac users to do this for every upload.
Can I import categorized bank transactions?
Not through the bank upload: it reads only date, description and amount. Set up bank rules first so
QuickBooks categorizes transactions as they come in, or categorize them in the bank feed.
How far back can I upload?
Intuit’s help gives no date limit for uploads; the 90-day limit is for bank connections. Start each file the day
after the last transaction already in that account, so nothing is imported twice.
Will uploading the same file twice create duplicates?
It can. QuickBooks shows each transaction before adding it, so untick any you already have, and exclude
doubles you spot later in the bank feed. Keeping one file per statement period makes repeats easy to avoid.
Where do I attach the statement PDF itself?
If you meant keeping the PDF for your records rather than importing its transactions: attach it when you
finish reconciling that month. Some connected banks also let QuickBooks fetch statements for you when you
reconcile.
Turn PDF statements into a QuickBooks file
Convert bank and credit card statements into a QuickBooks Online CSV or OFX, with every row checked against the bank’s balance.