Bank statement PDF to QBO
A QBO is the Web Connect file QuickBooks imports bank and credit card transactions from. Drop a PDF statement and we write one, after checking every row against the figures your bank printed.
QBO comes with Premium. Excel and CSV are free for a whole statement at a time, with no account and no limit on how many. See what Premium costs.
What is a QBO file?
A QBO file is the file QuickBooks imports bank transactions from. Intuit calls it a Web Connect file: you download it from your bank’s or card issuer’s website, and QuickBooks reads the transactions in. QuickBooks Online, QuickBooks Desktop and Quicken all support Web Connect, and Quicken’s own version of the file is the QFX.
Inside, a QBO is OFX, the Open Financial Exchange format banks use to send statements to money software, with a few lines added for Intuit. It is plain text, as the example below shows.
A .qbo file holds one account’s transactions, not your books. QBO is also short for QuickBooks Online, and the QuickBooks Desktop company file is a .qbw.
When your bank offers a QuickBooks download, take that. The PDF is what you have when it does not: a bank whose download reaches back only 30, 60 or 90 days, an account that has closed, or a bank that gives statements and nothing else.
What is inside a QBO file
This is the whole file for a statement of three transactions, as the converter writes it.
OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE
<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS><CODE>0<SEVERITY>INFO</STATUS>
<DTSERVER>20260123120000
<LANGUAGE>ENG
<FI><ORG>Ledgaroo<FID>3000</FI>
<INTU.BID>3000
</SONRS>
</SIGNONMSGSRSV1>
<BANKMSGSRSV1>
<STMTTRNRS>
<TRNUID>1
<STATUS><CODE>0<SEVERITY>INFO</STATUS>
<STMTRS>
<CURDEF>USD
<BANKACCTFROM><BANKID>000000000<ACCTID>STATEMENT<ACCTTYPE>CHECKING</BANKACCTFROM>
<BANKTRANLIST>
<DTSTART>20260114
<DTEND>20260123
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20260114120000
<TRNAMT>-12.40
<FITID>2026011400001240
<NAME>Harbour Cafe
<MEMO>CARD PURCHASE 4821 HARBOUR CAFE 3021
</STMTTRN>
<STMTTRN>
<TRNTYPE>DEBIT
<DTPOSTED>20260116120000
<TRNAMT>-214.60
<FITID>20260116000121460
<NAME>City Power
<MEMO>DIRECT DEBIT CITY POWER CO 88213
</STMTTRN>
<STMTTRN>
<TRNTYPE>CREDIT
<DTPOSTED>20260123120000
<TRNAMT>3250.00
<FITID>202601230002325000
<NAME>Northwind Trading Salary
<MEMO>DIRECT CREDIT 012721 NORTHWIND TRADING SALARY
</STMTTRN>
</BANKTRANLIST>
<LEDGERBAL>
<BALAMT>4023.00
<DTASOF>20260123120000
</LEDGERBAL>
</STMTRS>
</STMTTRNRS>
</BANKMSGSRSV1>
</OFX>OFXHEADER:100- The header: OFX 1.02 in its SGML form, the older, plain kind whose tags need no closing.
<INTU.BID>- Intuit’s Branding ID for the bank, which Web Connect requires, from its list of banks. A PDF names none, so ours is 3000, which the list gives to Wells Fargo.
<CURDEF>- The currency of every amount in the file.
<BANKACCTFROM>- The account. A credit card’s is <CCACCTFROM>, in the credit card section of the file.
<DTSTART>- The first day the transactions cover, and DTEND the last.
<STMTTRN>- One transaction: debit or credit, the date posted, the signed amount, an id, the payee and a memo.
<FITID>- The transaction’s id, unique within the account. OFX gives it so software can tell a transaction it already has.
<NAME>- The payee, in at most 32 characters. MEMO holds the description, up to 255.
<LEDGERBAL>- The closing balance, and the day it stood.
What a QBO file cannot do
- One account a file.
- A statement with a checking and a savings account on it is two QBO files, one for each account in QuickBooks.
- No categories.
- A QBO has no field for a category, a class or a tax code. You categorise the transactions in QuickBooks after they are in.
- QuickBooks Online takes 350 KB at most.
- That is its limit for one upload. A long statement can pass it: cut it into quarters with the date range and upload each.
- The account type is in the file.
- QuickBooks Online warns that the file is of a different type when you upload into another kind of account, such as savings for a checking file. You can carry on from the warning.
- Desktop imports a transaction once.
- QuickBooks Desktop will not import a transaction whose id it already has, and says Nothing imported. Account up to date.
- Desktop wants a bank it knows.
- Its error OL-222 means the file’s format is wrong or Desktop’s list of banks needs updating.
Importing it into QuickBooks
Download the QBO
- In QuickBooks Online, go to All apps, then Accounting, then Bank transactions.
- Open the Link account menu, choose Upload from file and select the file.
- For the QuickBooks CSV, match its Date, Description and Amount columns to the ones QuickBooks names, and say the dates are dd/mm/yyyy.
The QBO carries the currency shown on its button, so check it is the account’s before you download. The CSV carries no currency and takes at most 1,000 transactions, so the QBO is the one to prefer.
In QuickBooks Desktop for Windows, go to Banking, then Bank Feeds, then Import Web Connect Files, signed in to your Intuit account. On a Mac, go to Banking, then Downloaded Transactions, then Import File.
How we write a QBO from a PDF statement
We read the transactions off the PDF and check each one against the running balance the statement prints beside it, and the totals against the ones it prints at the foot. A row that does not agree is shown in red with both figures, and the download is held until you have seen it. Then the file is written in your browser, like this:
- A Web Connect file, with the bank id QuickBooks looks for.
- Intuit requires a QBO to name its bank by an id from Intuit’s list. A PDF carries no such id, and the list has none for a bank in general and none for an Australian bank, so ours carries 3000, which the list gives to Wells Fargo. QuickBooks Desktop may name the bank as Wells Fargo when you import. The transactions in it are your statement’s.
- The currency is written into the file.
- We read it off the statement and show it on the QBO button. Where the statement names none, you choose it. Make it the currency of the account you import into.
- Every transaction has an id of its own.
- It is built from the date, the row’s place in the statement and the amount, so the same statement converted twice gives the same ids, and Desktop skips the ones it already has.
- The payee goes in the name field, and the description in the memo.
- The name is cut out of the description, or set by your rule, up to the 32 characters a QBO holds there, and the description goes in the memo, up to the 255 characters it holds.
- A credit card statement is written as one.
- It goes in the credit card section of the file, with the balance owed as a negative figure. Upload it to a credit card account in QuickBooks. A bank statement is written as a checking account.
- Your account number is not in the file.
- The account is written as "STATEMENT". You choose which QuickBooks account the rows go into when you upload.
Every format holds the same checked transactions. The other files we write are on the import page.
Questions
Is my statement uploaded anywhere?
No. The statement is read in your browser, on your computer. Nothing in it is sent to us or to anyone else.
Can I convert a credit card statement PDF to QBO?
Yes. We read a credit card statement as one, with each purchase as money out and each payment as money in, and write the QBO as a credit card account’s, to upload into a credit card account in QuickBooks.
QuickBooks refused the file. What went wrong?
In QuickBooks Online, check that the file is under 350 KB, and that the account you chose is the kind the file is for: a credit card account for a card statement. In QuickBooks Desktop, sign in to your Intuit account first. Check too that the currency on the QBO button is the account’s, and set it under the downloads if not.
What is the difference between QBO and OFX?
A QBO is an OFX file with lines added for Intuit, naming the bank. The transactions inside are the same. Use QBO for QuickBooks and OFX for software that asks for OFX.
Does it handle scanned statements?
Yes, as a PDF, JPG, PNG or WebP. The text is read off the picture by OCR in your browser, and the file never leaves your computer. The first scan takes longer while the reader loads. OCR can misread a figure, so a scan is checked like any other statement. If it prints no running balance, no totals and no closing balance, nothing can check the figures, so the download is held as it is for a failed check, and you look the figures over first. A date misread within the statement period passes every check, so a date OCR was unsure of is marked for you to compare with the scan. A PDF downloaded from online banking is more reliable than a scan. More about scanned statements.
Is it free, and do I need an account?
Excel and CSV are free for a whole statement at a time, with no limit on how many. Premium adds every other format, a CSV in a layout of your own, payee names with rules that set the payee and category, the working paper, part of a statement, several statements joined into one, and downloading every open statement at once. Neither needs an account: Premium is a licence key, which you paste into the page or activate from the email it comes in, and your browser keeps it. The pricing page lists each format and the price.