How to Get a PDF Bank Statement into QuickBooks or Xero
Bank feeds are handy until they are not: the account is closed, the feed only reaches back so far, the connection broke for three months, or a client simply emailed you a stack of PDF statements. In all of those cases you need the transactions as a file your accounting software can import. This guide shows how to convert a PDF bank statement to CSV and then import that CSV into QuickBooks Online or Xero yourself, including the column mapping, date format and sign details that trip people up.
One thing up front: statementconvert.ai has no direct integration with QuickBooks, Xero or any other accounting tool, and it never connects to your bank. It turns a PDF into a CSV. The import is a few clicks you do in your own software.
Step 1: Convert the PDF statement to CSV
- Download the statement as a PDF from online banking, or use the PDF you were given.
- Upload it to statementconvert.ai.
- Preview the rows. Each result is checked against the balances and totals printed on the statement, where there are any, and says whether they matched. A match means the extracted figures agree with the printed figures that were checked; it does not prove every row is right, because errors can offset.
- Download as CSV. (Excel, JSON and XML are there too, from the same conversion.)
No account is needed to preview: without one, the preview shows the first rows in full and the rest as date and amount. Signing in free with Google shows every row and unlocks the download, and the free plan covers up to 5 statement pages a month. If you work through many statements, paid plans accept up to 12 statements in one upload, for example a year of monthly statements for one account.
What the CSV contains
The CSV has one row per transaction and these columns:
| Column | What it holds | Map it? |
|---|---|---|
| Date | Transaction date, year-first (YYYY-MM-DD) | Yes, to the date field |
| Description | Merchant or transaction text from the statement | Yes, to description or payee |
| Amount | Signed amount (see the sign section below) | Yes, to amount |
| Balance | Running balance, when the statement prints one | Usually no |
| Source File | The PDF the row came from | No |
| Page | The page of the PDF the row came from | No |
Balance, Source File and Page are there so you can trace any row back to the statement. Most importers let you leave a column unmapped. If one complains about extra columns, open the CSV in a spreadsheet, delete those three columns and export it as CSV again.
Step 2: Import the CSV into QuickBooks Online
QuickBooks Online changes its screens from time to time and labels vary, so this is the overall flow rather than exact menu names:
- Open the banking area that lists bank transactions for your accounts.
- Find the option to upload transactions from a file. It is usually near the control for linking an account.
- Choose your CSV file and pick the QuickBooks account the transactions belong to.
- Map the columns: Date to Date, Description to Description, Amount to Amount. QuickBooks usually asks whether amounts are in one column or split into two; the converted CSV uses one column with positive and negative numbers.
- Pick the date format that matches the file (see the date section below).
- Review the preview QuickBooks shows, select the rows to import, and confirm.
The transactions then land in the review list for that account, where you categorize and match them as you would feed transactions.
Step 3 (alternative): Import the CSV into Xero
Xero's screens also change over time and labels vary, but the flow is usually along these lines:
- Open the bank account the statement belongs to from Xero's list of bank accounts.
- Find the option to import a statement, usually in that account's options menu.
- Browse to your CSV and continue.
- Assign the columns: Date to the transaction date field, Amount to the amount field, Description to the description or payee field. Leave Balance, Source File and Page unassigned.
- Pick the date format that matches the file, then complete the import.
The lines then appear as statement lines ready to reconcile in that bank account.
Date formats: the most common import problem
A swapped day and month is the classic import mistake. 03/04 can be the 3rd of April or the 4th of March, and an importer will not know which unless you tell it.
- The CSV writes dates year-first, YYYY-MM-DD (for example 2026-04-03).
- The Excel file writes dates as DD/MM/YYYY (for example 03/04/2026).
Before importing, open the file you plan to use and look at a date late in the month, such as the 25th, so the order is obvious. Then choose the matching format on the import screen.
One trap: if you open the CSV in Excel and export it again, Excel may rewrite the dates in your computer's regional format. If you edit the file in a spreadsheet, check the dates once more before importing.
Amount signs: money in, money out
The Amount column is a single signed number, and the sign follows the statement type:
| Statement type | Positive amount | Negative amount |
|---|---|---|
| Checking or savings | Deposits, money in | Withdrawals, payments, fees |
| Credit card | Purchases, fees, interest | Payments and refunds to the card |
For a bank account this matches how most importers read a one-column amount: negative is money out. For a credit card account, tools differ in which sign they expect. If a card account expects the opposite sign, purchases can appear as payments. Reversing the sign of the Amount column (in a spreadsheet, a formula such as =-C2 filled down does it) changes every value, refunds included, so they all switch together. A small test import shows which way the tool expects it.
Avoiding duplicates and gaps
A PDF import and a live bank feed can overlap. Before you import:
- Check the date range the feed already brought in, and import only the statement periods it is missing.
- Import one statement first as a test, check it in the account, then do the rest.
- Compare the closing balance in your accounting software with the closing balance printed on the statement after import. If they agree, the imported figures match the printed balance; it does not prove every row is right, since errors can offset. If they differ, comparing the rows with the statement shows where.
The preview and the balance check in statementconvert.ai are a chance to compare the rows with the statement before anything reaches your books, which is far easier than unpicking a bad import later.
A short checklist before every import
- The conversion result says the rows agreed with the printed balances (or you checked the rows by hand where the statement prints none).
- Row count matches the statement.
- You know which date order the file uses.
- You know which sign convention the target account expects.
- Balance, Source File and Page are unmapped or removed.
For bookkeepers working with client statements
Converting client statements is the same process, repeated. Each statement is processed in memory and discarded, and we never store your statement or your client's; the AI providers that read the pages do not train on them and may keep request logs for up to 30 days, as the privacy page explains. Paid plans start at $7.99 a month for 100 pages, with Pro at $14.99 for 500 pages and Business at $49.99 for 3,000 pages. The accountants and bookkeepers page covers the client workflow, and the recurring-charge review for bookkeepers shows how the same statements reveal repeating charges.
For more on CSV itself, see how to convert a bank statement to CSV. Working from paper? Converting a scanned bank statement covers scan quality and what to check.
Convert your statements for import
See how it works for accountants and bookkeepers, or upload a statement now: preview the transactions and the balance result, then sign in free to see every row and download a CSV ready for your own import into QuickBooks Online or Xero.
Frequently asked questions
Does statementconvert.ai connect directly to QuickBooks or Xero? No. There is no direct integration with QuickBooks, Xero or any other accounting tool, and no connection to your bank. You convert the PDF statement to a CSV file, download it, and import that file into your accounting software yourself.
Which columns do I map when importing the CSV? Map Date to the date field, Description to the description or payee field, and Amount to the amount field. The CSV also has Balance, Source File and Page columns; those are for your own checking and can be left unmapped or removed before import.
What date format does the converted file use? The Excel file writes dates as DD/MM/YYYY. The CSV writes them year-first, as YYYY-MM-DD. Open the file you plan to import, check the order, and pick the matching date format on the import screen so days and months are not swapped.
Why do my imported transactions show the wrong sign? For checking and savings accounts, money out is negative and money in is positive. For credit card statements, purchases are positive and payments are negative. Accounting tools differ in which sign they expect for a card account; if one expects the opposite sign, purchases can appear as payments. Reversing the sign of the Amount column changes every value, refunds included, and a small test import shows which way the tool expects it.
Is my statement stored when I convert it? Not by us. It travels over HTTPS, is processed in memory, its pages are read by our AI providers (OpenAI, and Anthropic for a second reading) and it is then discarded. The providers do not train on it and may keep request logs for up to 30 days; the privacy page has the details.