Home / Blog / Guide

Guide

How to import a bank statement PDF into QuickBooks Online

Your bank only gives you PDFs, and QuickBooks Online wants a CSV. Here is the exact CSV layout QuickBooks accepts, how to get one from a PDF, and how to check it before you upload.

13 October 2026 · 7 min read

QuickBooks Online can pull transactions straight from most banks. When it cannot, because the bank feed is broken, the account is closed, or you are catching up on a client's history from before the feed was connected, all you have is a stack of PDF statements. QuickBooks will not read a PDF. It will read a CSV, as long as the CSV is shaped the way it expects.

This guide covers the layout QuickBooks accepts, how to turn a statement PDF into that layout, and the checks worth running before you press upload. The upload itself takes two minutes; most of the time lost in this job goes into fixing a bad import afterwards.

What QuickBooks Online expects

QuickBooks accepts two CSV layouts for bank transactions. Intuit's own help article on formatting CSV files describes both:

Three columns: Date, Description, Amount. Money out is a negative amount and money in is positive.

Four columns: Date, Description, Credit, Debit. Money in and money out sit in separate columns, both as positive numbers. Intuit notes the headers should say "Credit" and "Debit" on their own, without the word "amount".

A few rules trip people up:

  • One date format for the whole file. Pick one and keep it. Remove day-of-week text such as "TUE" from the date column.
  • Blank, not zero. In the four-column layout, leave the empty side blank rather than writing 0.
  • No numbers in the description column if you can avoid it. Some statements put a cheque number in the description; move it out if QuickBooks rejects the file.
  • Plain numbers. No currency symbols, no thousands separators.
  • File size. Intuit's upload article gives a maximum file size of 350 KB. If you are importing a long history, split it by month or quarter.

Step 1: Turn the PDF into rows

Copying and pasting from a PDF looks like it works until you see that wrapped descriptions have split into two rows, the running balance has landed in the amount column, and page two has repeated the header line. Older OCR tools have the same problems on scanned statements.

With aiXtractor:

  1. Sign in and open Extraction.
  2. Choose Bank statement as the document type, or leave it on Auto-detect.
  3. Upload the statement. Digital PDFs, scans and phone photos all work, up to 10 pages per file.
  4. When extraction finishes, the transactions appear as a table next to the page. Click any value and the page view jumps to where it was read.

Each row comes back with date, description, reference, debit, credit and balance. Dates are written as YYYY-MM-DD whatever the statement's own convention, which saves a common mix-up between US-style and UK-style dates.

Step 2: Check the numbers before they reach your books

Open the Validation step before exporting. For bank statements, the default checks are:

  • Opening balance + credits − debits = closing balance.
  • The running balance recomputed on every row.
  • Printed debit and credit totals equal the columns.
  • Every transaction date falls inside the statement period.
  • No row repeated or dropped at a page break.

If a row fails, the check points at it. Click Show on page to see the source, fix the value inline and save. A failed running-balance check is the most useful one here: it tells you not only that something is wrong but which row broke the chain.

Step 3: Export and shape the CSV

Click Download → CSV. The file has the header fields at the top and the transactions below. For QuickBooks you only need the transaction rows.

For the four-column layout: keep date, description, credit and debit, and rename the headers to Date, Description, Credit, Debit.

For the three-column layout: add an Amount column with the formula =credit − debit (for example =F2-E2), copy it down, then delete the original debit and credit columns.

Dates arrive as YYYY-MM-DD. If your QuickBooks region does not offer that format on the mapping screen, select the date column in Excel and apply a custom format such as dd/mm/yyyy or mm/dd/yyyy before saving.

Save as CSV. On a Mac, Intuit recommends saving as a Windows CSV.

If you do this every month, change the extraction prompt for bank statements once so it returns a single signed amount column, and the export will be ready for QuickBooks with no spreadsheet step. Prompts are editable for each document type; you do not need to wait for a feature request.

Step 4: Upload to QuickBooks Online

  1. Go to Bookkeeping → Transactions → Bank transactions.
  2. If the account is connected to a bank feed, open the Link account drop-down and choose Upload from file. If it is not, click Upload transactions.
  3. Choose your CSV and click Continue.
  4. Pick the QuickBooks account the transactions belong to.
  5. Map the columns: tell QuickBooks which column is the date, description and amount (or credit and debit), and which date format you used.
  6. Select the transactions to import and confirm.

Before importing, check the account's history in the chart of accounts and note the oldest transaction, usually the opening balance. Start your file after that date so you do not double-count it.

Common problems

Amounts imported with the wrong sign. Credit card statements often list charges as positive numbers. Upload them to the credit card account in QuickBooks, not a bank account, and check the sign convention on the mapping screen.

"The file is too big." Split the CSV by month and import each part.

Duplicates after the import. Usually the date range overlapped a bank feed or an earlier upload. Exclude duplicates on the For review tab before categorising.

Totals do not match the statement. Go back to the validation step in aiXtractor. If the balance checks pass, the extracted data matches the statement, and the difference is in what was imported, not what was read.

The short version

Extract the statement, let the balance checks confirm every row, export CSV, rename the columns, upload. If you want to try it on a statement of your own, the free plan covers 50 pages a month with no card required.

Keep reading

Try it on your own documents

50 free pages every month. No card required.

Start free