How to Import Bank Statements into QuickBooks Online and Xero (CSV Formats That Work)
Bank feeds are wonderful right up until you need history. Connect an account to QuickBooks Online or Xero and transactions flow in automatically — but only from around the connection date forward, with an initial back-fill that commonly covers about 90 days. Older transactions, closed accounts, and banks without feed support all arrive the same way: as PDF statements the software cannot read.
The bridge is a correctly formatted CSV file. Both platforms accept manual uploads, both are strict about the format, and both fail in confusing ways when the format is wrong. This guide covers the exact CSV layouts QuickBooks Online and Xero expect, the upload steps for each, and the five errors that eat the most time — plus how to get from a PDF statement to an import-ready file in one step.
Step zero: get the transactions out of the PDF
Formatting rules only matter once the data is out of the PDF and into a table. Copy-paste from a statement mangles columns more often than not, so use a proper extraction path first — we compare all five approaches in our conversion guide. The short version: a purpose-built converter like autobankstatement reads digital statements directly, runs OCR on scanned ones, and outputs a clean table with separate date, description, and amount columns as CSV or XLSX.
Before formatting anything for import, verify the extraction: opening balance plus credits minus debits must equal the closing balance, and the row count should match the statement. Fixing an extraction error before import takes one minute; finding it after import means hunting through your books.
QuickBooks Online: two accepted CSV layouts
QuickBooks Online accepts CSV transaction lists in exactly two shapes. The 3-column format uses a single signed amount column — negative for money out, positive for money in:
| Date | Description | Amount |
|---|---|---|
| 01/07/2026 | ACME SUPPLIES INVOICE 8841 | -1250.00 |
| 02/07/2026 | CLIENT PAYMENT JONES LTD | 3400.00 |
The 4-column format splits money movement into separate credit and debit columns and leaves the unused cell empty:
| Date | Description | Credit | Debit |
|---|---|---|---|
| 01/07/2026 | ACME SUPPLIES INVOICE 8841 | 1250.00 | |
| 02/07/2026 | CLIENT PAYMENT JONES LTD | 3400.00 |
Intuit's formatting rules are specific, and violating any one of them can block the upload:
- Headers must read exactly Date, Description, Amount — or Date, Description, Credit, Debit. In particular, remove the word "amount" from credit and debit headers; a column called Credit Amount fails.
- Leave cells blank instead of entering 0. Stray zeros in Amount, Credit, or Debit cells trigger errors.
- Remove standalone numbers from the Description column, and strip currency symbols and thousands separators from amounts.
- Use one consistent date format for every row; Intuit recommends dd/mm/yyyy and lets you confirm the format during mapping. If your bank appends the weekday (20/11/2025 TUE), split it off first.
- Keep files at or under 350 KB and roughly 1,000 rows per upload — split long histories into batches by date range.
Uploading into QuickBooks Online
- Go to Transactions → Bank transactions (older layouts call it Banking).
- Select the account tile, open the Link account dropdown, and choose Upload from file. If the account is not connected to online banking, choose Upload transactions manually.
- Pick your CSV, then choose the QuickBooks account the transactions belong to.
- Map your file's columns to QuickBooks fields — date, description, and amount (or credit and debit) — and confirm the date format matches the file.
- Select the transactions to import, confirm, and let QuickBooks flag anything it considers a duplicate.
After the upload, transactions land in the For review tab, where bank rules and categorization work exactly as they do for feed transactions.
Xero: one CSV shape, strict about the details
Xero's manual statement import accepts CSV, and its minimum viable file is remarkably small: a Date column and a single signed Amount column. Optional columns — Payee, Description, Reference, and Cheque Number — improve reconciliation matching and bank rules, so include them when your source data has them.
| Date | Amount | Payee | Description |
|---|---|---|---|
| 2026-07-01 | -1250.00 | Acme Supplies | Invoice 8841 |
| 2026-07-02 | 3400.00 | Jones Ltd | Client payment |
- One signed Amount column: negative means money out, positive means money in. Accounting-style parentheses negatives like (1250.00) are rejected — use a minus sign.
- No currency symbols anywhere; the currency belongs to the Xero bank account, not to the file. Dropping thousands separators entirely is the safest choice as well.
- Date interpretation follows your Xero organisation's region: US organisations read MM/DD/YYYY, while UK, Australian, and New Zealand organisations read DD/MM/YYYY. A mismatched file can import with days and months silently swapped — the most damaging failure mode, because nothing visibly errors.
- Exactly one header row, no preamble lines above it, comma delimiters, UTF-8 encoding.
Uploading into Xero
- Go to Accounting → Bank accounts and open the target account.
- Select Import a statement (in some layouts it sits under Manage account).
- Upload the CSV and check the column mapping Xero proposes, adjusting if anything is misassigned.
- Confirm. Imported statement lines appear on the reconciliation screen alongside any feed lines.
The five errors that waste the most time
- Dates imported wrong with no error shown. The file format and the organisation's region disagree, so 03/07 becomes March 7 instead of 3 July. Fix the format before upload; after upload, the only cure is deleting the imported lines and importing again.
- "We can't read your file." Usually special characters in descriptions, currency symbols in amounts, or extra columns confusing the mapper. Strip the file back to the minimum columns and retry.
- Header rejected by QuickBooks. A credit or debit header containing the word "amount", or leftover header text from the bank's export. Rename to plain Credit and Debit.
- Duplicates after import. The uploaded date range overlaps the bank feed. Exclude the duplicates in QuickBooks' review screen, or delete the statement lines in Xero, then re-import with a range that ends where the feed begins.
- QuickBooks rejects a credit/debit file containing only money-out rows. A known quirk: add one dummy positive row to the file, then untick it at the selection step so it never actually imports.
After the import, reconcile against the statement
The import is not finished when rows appear on screen; it is finished when the books agree with the bank. Compare the account balance in the software against the closing balance printed on the statement for the imported period, and confirm the imported transaction count matches the statement's. If either is off, the balance equation from step zero tells you whether the error crept in during extraction or during import.
Skipping the formatting step entirely
Everything above is mechanical, which is exactly why it is worth automating. autobankstatement converts statement PDFs — digital or scanned — into clean CSV with dates normalized and debits and credits kept separate, so mapping onto QuickBooks Online's 3- or 4-column shape or Xero's signed-amount shape requires no manual surgery. Upload the PDF, preview the extracted table against the original, export CSV, and import. The whole path from PDF to reconciled books takes minutes, and you can see plans on the pricing page.
Frequently asked questions
Can I import a PDF bank statement directly into QuickBooks Online?
QuickBooks Online can accept an uploaded statement PDF or image in some regions and flows, but the dependable, universally available path is a formatted transaction list — CSV, QBO, or QFX. For scanned or older statements, converting to CSV first gives you control over exactly what enters your books.
Can Xero read PDF bank statements?
No. Xero's manual import accepts CSV (plus OFX and QIF in some regions). PDF statements must be converted to one of those formats before they can be imported.
How many transactions can I upload at once?
QuickBooks Online caps uploads at 350 KB and roughly 1,000 lines per file, so split longer histories into date-range batches. Xero handles typical statement-sized files comfortably.
What date format should my CSV use?
One consistent format for the whole file. Intuit recommends dd/mm/yyyy for QuickBooks uploads and lets you confirm the format at the mapping step. Xero interprets dates according to your organisation's region, so match it — or use an unambiguous format like 2026-07-01 where accepted.
Does autobankstatement's CSV work with both platforms?
Yes. Exports keep dates, descriptions, and amounts cleanly separated, with debits and credits preserved, so the columns map directly onto both QuickBooks Online layouts and Xero's format.
From PDF statement to posted transactions
Convert a statement into import-ready CSV now — upload, preview, export, and reconcile in minutes.
