# How to convert bank statement PDFs to Excel or QuickBooks with AI

> Use Claude or ChatGPT to turn bank statement PDFs into a QuickBooks or Xero import CSV, keep a reusable vendor map, and tie out before you import.

- **URL**: https://www.nocodetalks.co/blog/bank-statements-to-quickbooks-with-ai
- **Author**: Ankur Khandelwal, Nocodetalks
- **Updated**: Oct 7, 2026
- **Topic**: Bookkeeping
- **Sources checked**: 29

---

_A workflow for US bookkeepers and CPA firms._ Try QuickBooks' own PDF upload first. When it doesn't fit, have Claude or ChatGPT write the import CSV, keep a vendor map, and import nothing until the balance ties.

## The short answer

If the client is on QuickBooks Online, try its own PDF upload first: as of October 2026 it extracts statement lines with AI and shows them side by side before you save. For Xero, catch-up years or a pile of statements, have Claude or ChatGPT turn the PDFs into an import CSV, keep a vendor map it reuses next month, and import nothing until opening balance plus activity equals the closing balance.

> General information, not legal or tax advice. Check the cited rules with your own CPA or attorney before acting.

## What you need: the surface and the files

Pick the surface by volume and by how sensitive the files are. Every route ends in a CSV that QuickBooks Online or Xero accepts, plus a tie-out.

| Surface | Best for | Watch for |
|---|---|---|
| QuickBooks Online's own PDF upload | QBO clients, a few statements | English only; Intuit's experts may review flagged items |
| Claude or ChatGPT, one Project per client | A few months for one client | Long histories hit upload limits |
| Claude in Excel, ChatGPT for Excel or Copilot in Excel | The tie-out, with live formulas | Works on workbooks, so extract first |
| Claude Cowork or ChatGPT Work | A folder of 12 statements | New Pro and Max Cowork tasks run in Anthropic's cloud since Oct 6, 2026 |
| Claude Code or Codex | Volume, every month | Build the script on sample data |

Have ready: copies of the PDFs (never originals), the chart of accounts, last year's GL and the prior closing balance.

## Try QuickBooks Online's own PDF upload first

If the books are in QBO, this is the simplest AI route. As of October 2026, Intuit's help page says you can upload a statement as a PDF or image. AI extracts the lines, and you review them side by side with the statement before saving. In Bank transactions, open the Link account dropdown and choose Upload from file.

Two limits: the statement must be in English, and Intuit says its global experts may review a statement when items need review. Decide per client whether that's acceptable, and still run the tie-out below.

> Note: Xero can't import PDF statements. It accepts OFX, QFX, QIF, a QuickBooks file or CSV, and recommends OFX. Ask the bank or client for an export before you convert anything.

## The workflow: statement PDFs to an import CSV with Claude or ChatGPT

Use this for Xero clients, catch-up years, or statements you'd rather not send to Intuit. Extract first, code second.

1. **Set up the client.** Create a Claude or ChatGPT Project. Add the chart of accounts, last year's GL if you have it, and a standing rule: one statement per pass, never guess.
2. **Extract and tie out.** Ask for every line and the running balance, with no coding yet. Don't move on until each statement ties.
3. **Learn the books, then code.** Ask how each vendor was coded last year first. Mike Dion's close demo does the same and posts nothing until he sees the coded list ([AI For Finance @2:32](https://youtu.be/UP8jzq5mvJ0?t=152)).
4. **Code into a vendor map.** In Xero the coding can travel: its precoded CSV takes Date, Amount, Account code and Tax Rate, then creates and reconciles the transactions. Xero warns this introduces errors if lines match existing invoices or bills. QBO's bank upload takes only 3 or 4 columns (Date, Description, Amount, or Credit and Debit), so categories don't travel.
5. **For QBO, turn the map into bank rules.** Rules for vendors that always hit one account will code uploaded lines as they arrive. See [QuickBooks bank rules with AI](https://www.nocodetalks.co/blog/quickbooks-bank-rules-with-ai).
6. **Upload and review.** QBO takes up to 1,000 lines and 350 KB per upload; Xero, up to 100,000 rows. Review every line in the feed.

Prompt for Any AI chat · Extract and tie out one statement:

```
Attached: one bank statement PDF for [CLIENT CODE], account ending [LAST 4], [START] to [END].
1. Extract every transaction: Date (MM/DD/YYYY), Description, Amount (money in positive, money out negative), Running balance. Keep wrapped descriptions on one row.
2. Tie out: opening + deposits - withdrawals = closing, to the cent. Show all four numbers and the line count.
3. If it doesn't tie, list the rows you're least sure of. Never change an amount to force a tie.
4. Flag anything you couldn't read.
Don't categorize anything yet.
```

Prompt for Claude · Build the vendor map and the upload file:

```
Use the tied-out table, the chart of accounts and [last year's GL].
1. Build a vendor map: vendor, the bank text it appears as, account, and why. Reuse it for every repeat.
2. Code each line from the map. If unsure, use Uncategorized and say why.
3. Flag transfers, card payments, loans and owner items for my review.
4. Output vendor_map.csv, a coded review sheet, and an upload CSV in [QBO 3-column / Xero precoded] layout.
5. Summarize lines coded, lines flagged and totals by account.
Don't post or import anything.
```

## Turn the vendor map into a skill: Jason Staats' benchmarks

Jason Staats, a CPA who ran a 40-person firm, tested this in Claude Cowork in March 2026: statements plus his Schedule C ledger template, with every line entered and classified. Each run tied to the last statement's ending balance and listed items to look into ([@2:45](https://youtu.be/5DevfwAfVpA?t=165), [@4:00](https://youtu.be/5DevfwAfVpA?t=240)).

| Test (synthetic statements) | Time |
|---|---|
| 67 transactions, 3 months | 3:36 |
| 670 transactions, 12 months | 12:10 |
| 670 again, with the vendor-map skill | 3:12 |
| 6,700 transactions, with the skill | 7:29 |

The speedup came from asking why it took so long. Researching each vendor was the bottleneck, so Claude built a vendor map as it went and packaged it as a skill ([@6:29](https://youtu.be/5DevfwAfVpA?t=389), [@7:14](https://youtu.be/5DevfwAfVpA?t=434)). In a June video, about 50 self-made rules covered 96% of 6,700 lines. Staats still called it a toy for complex books ([@2:09](https://youtu.be/PwhvAASCJ1I?t=129), [@12:13](https://youtu.be/PwhvAASCJ1I?t=733)).

> Note: Read these as demo numbers. The statements were AI-generated, Staats said then not to put client data into Cowork yet, and both videos carry sponsor segments (Kick and Ramp).

Prompt for Claude · Turn this run into a reusable skill:

```
That run worked. Before next month:
1. Tell me which steps took longest and why.
2. Draft a skill called [CLIENT CODE]-statements holding the chart of accounts, this run's vendor map, the [QBO / Xero] upload layout, the tie-out rule, and the rule that unsure lines stay Uncategorized.
3. New vendor-map entries need my approval, with a list of changes.
4. Show me the skill before saving it, and list what you assumed about this client.
```

## Check the output before anything posts

- Opening plus deposits minus withdrawals equals closing, to the cent, for every statement.
- Each opening balance matches the prior statement's closing balance.
- Line count and deposit and withdrawal totals match the statement summary.
- Every date sits inside the statement period, with the right year.
- Transfers, card payments and loan payments are flagged, not coded as expenses.
- You checked 10 random lines against the PDF yourself, and nothing overlaps the feed.

Better still, have Claude in Excel, ChatGPT for Excel or Copilot build the tie-out in the workbook with live formulas. A formula you can click beats a total quoted in chat.

What people report
- A bookkeeper built a Python parser with Claude that checks amounts against section subtotals and summary totals, so every run reconciles itself. (a commenter on r/Bookkeeping (May 2026), https://www.reddit.com/r/Bookkeeping/comments/1tkqj1d/converting_bank_statement_pdfs_into_useable_csvs/)
- Two commenters use the same validation rules: line items sum to the total, the amount is outside the vendor's normal range, the date is in the future. They review only what fails. (commenters on r/Bookkeeping (2026), https://www.reddit.com/r/Bookkeeping/comments/1uv72v0/how_much_of_your_month_is_still_just_retyping/)
- AI gets them about 80% of the way, which means auditing all of the output. (an accountant commenting on Shin Financials' YouTube video (2026), https://www.youtube.com/watch?v=shNYNFFCz2g)

> Whatever tool you use, reconcile the output back to the statement totals before importing it.
> — a commenter on r/Bookkeeping (May 2026) (https://www.reddit.com/r/Bookkeeping/comments/1tkqj1d/converting_bank_statement_pdfs_into_useable_csvs/)

## Make it faster next month

- **Keep the vendor map as a file you own.** It works in any tool and drafts your bank rules.
- **Save the procedure as a skill.** Claude, ChatGPT, Codex and Copilot in Excel read the same SKILL.md format.
- **Rerun, then compare.** Ask for a diff against last month: new vendors and changed accounts.
- **Don't schedule it on client files.** Anthropic's Cowork safety page says not to schedule tasks that access sensitive files.

## If you script it: Claude Code, Codex and the libraries

For volume, have the AI write a parser once and run it monthly; a script doesn't drift. Christine Payton's demo shows the safer pattern: build it on sample data, then run it on real files yourself, outside the chat ([@3:52](https://youtu.be/HC7Eq90bR9Y?t=232)).

| Library | What it does | Notes (Oct 7, 2026) |
|---|---|---|
| Docling | Layout-aware PDF to JSON or Markdown, with OCR | ~68.5k GitHub stars, MIT, local, heavier install |
| pdfplumber | Text and table extraction by position | ~10.8k stars, MIT, text PDFs only |
| ofxtools | Parses OFX and QFX files | ~350 stars, GPL-3.0, updated Oct 2026 |
| monopoly | Statement PDF to CSV for specific banks | ~430 stars, AGPL-3.0, few US banks |

Prompt for Claude Code · Write a self-checking statement parser:

```
This folder has [N] sample statements from [BANK] with fake data, plus upload_layout.csv and vendor_map.csv.
1. Write a Python script using pdfplumber (Docling if a page is scanned) that extracts Date, Description and Amount from every PDF in an input folder.
2. Check opening + activity = closing and the line count per statement. Write a tie-out report and stop if any statement fails.
3. Write one upload CSV per account in upload_layout.csv format, and put unmatched vendors in review.csv.
4. Run it on the samples, show me the report, and list every layout assumption you made.
```

## Where AI fails here

- **Driving QuickBooks in the browser.** Staats had Claude enter about 60 transactions through QBO's screens and stopped it after roughly 10 minutes ([@24:04](https://youtu.be/5DevfwAfVpA?t=1444)). His verdict: "browser use agents, they still suck."
- **Posting through the QuickBooks connector.** Intuit's connector lists a transaction-import tool. In Hector Garcia's October test in ChatGPT, 100 lines landed in an account he didn't choose, without payees ([@17:27](https://youtu.be/aGyhYW0TQmE?t=1047)). In an April test in Claude, revenue went to Returns and allowances, with no tool to fix it ([@10:37](https://youtu.be/goCwSJ1Xfg0?t=637)).
- **Long histories.** People report file limits on 18 months of statements, and QBO's AI rec failing on a 150-page one. Go one statement at a time.
- **Usage.** Staats needed the Max plan and estimated about $1,000 in usage for the video ([@25:53](https://youtu.be/5DevfwAfVpA?t=1553)).

## Data safety

Anthropic's Cowork safety page advises against giving Cowork local files with sensitive information, like financial documents. Since October 6, 2026, new Pro and Max Cowork tasks run in Anthropic's cloud, and Anthropic points local-only work to Claude Code. Claude Code runs on your computer, but whatever the model reads still goes to Anthropic, which is why the sample-data script matters.

Use a firm-managed business plan and strip account numbers. Full checklist: [Is it safe to use Claude with client data?](https://www.nocodetalks.co/blog/is-claude-safe-for-client-data)

> Note: If statements feed tax return preparation, 26 U.S.C. § 7216 limits how preparers use or disclose return information. This isn't legal advice. See [Section 7216 consent and AI](https://www.nocodetalks.co/blog/irs-section-7216-ai-client-consent) and check with a US CPA or attorney.

## Common questions

**Can ChatGPT or Claude convert a bank statement PDF to Excel?**

Yes. Both can read statement PDFs and return a CSV or Excel file. Ask for extraction and a tie-out first and coding second, and confirm opening plus activity equals closing before you use the file.

**Can QuickBooks Online import a PDF bank statement directly?**

Yes, as of October 2026. In Bank transactions, use Link account, then Upload from file. AI extracts the lines and you review them side by side before saving. The statement must be in English.

**Will my AI-coded categories import with the CSV?**

In Xero, yes: its precoded CSV takes an account code and tax rate per line, as long as the lines don't match existing invoices or bills. In QBO, no. The bank upload has 3 or 4 columns, so turn the vendor map into bank rules.

**Should Claude post transactions straight into QuickBooks?**

I wouldn't yet. Intuit's connector can import transactions, but creators' tests showed wrong accounts, missing payees and no way to recategorize afterward. Upload a CSV you've reviewed instead.

## Sources

- [Manually upload transactions into QuickBooks Online](https://quickbooks.intuit.com/learn-support/en-us/help-article/import-transactions/manually-upload-transactions-quickbooks-online/L0rE9OXBz_US_en_US)
- [About manually importing bank statements](https://central.xero.com/s/article/About-manually-importing-bank-statements)
- [Import a bank statement in CSV format](https://central.xero.com/s/article/Import-a-CSV-bank-statement)
- [Import a precoded bank statement in CSV format](https://central.xero.com/s/article/Import-a-precoded-CSV-bank-statement)
- [Why Claude Cowork Is Already Changing Accounting Firms](https://youtu.be/5DevfwAfVpA?t=118)
- [Claude Cowork Is REPLACING QuickBooks in Accounting Firms](https://youtu.be/PwhvAASCJ1I?t=129)
- [Claude Just Replaced My Accountant (Full Month-End Close)](https://youtu.be/UP8jzq5mvJ0?t=152)
- [Work with QuickBooks inside ChatGPT or Claude](https://youtu.be/aGyhYW0TQmE?t=1047)
- [We Tried Claude's QuickBooks Connector So You Don't Have To (2026)](https://youtu.be/goCwSJ1Xfg0?t=637)
- [Extract from PDFs with Claude (super easy!)](https://youtu.be/HC7Eq90bR9Y?t=232)
- [Use Claude Cowork on web, desktop and mobile](https://support.claude.com/en/articles/15520349-use-claude-cowork-on-web-desktop-and-mobile)
- [Use Claude Cowork safely](https://support.claude.com/en/articles/13364135-use-claude-cowork-safely)
- [What are projects?](https://support.claude.com/en/articles/9517075-what-are-projects)
- [Projects in ChatGPT](https://help.openai.com/en/articles/10169521-projects-in-chatgpt)
- [Use Claude for Excel](https://claude.com/docs/office-agents/excel)
- [ChatGPT for Excel](https://openai.com/index/chatgpt-for-excel/)
- [Frequently asked questions about Copilot in Excel (edit mode)](https://support.microsoft.com/en-us/office/frequently-asked-questions-about-agent-mode-in-excel-1cfd906d-40b4-46be-8e2d-65b893e28a02)
- [Agent Skills](https://agentskills.io)
- [QuickBooks connector](https://claude.com/connectors/quickbooks)
- [docling-project/docling](https://github.com/docling-project/docling)
- [jsvine/pdfplumber](https://github.com/jsvine/pdfplumber)
- [csingley/ofxtools](https://github.com/csingley/ofxtools)
- [benjamin-awd/monopoly](https://github.com/benjamin-awd/monopoly)
- [26 U.S. Code § 7216](https://www.law.cornell.edu/uscode/text/26/7216)
- [Converting bank statement PDFs into useable CSVs for import (r/Bookkeeping)](https://www.reddit.com/r/Bookkeeping/comments/1tkqj1d/converting_bank_statement_pdfs_into_useable_csvs/)
- [How much of your month is still just retyping numbers off PDFs? (r/Bookkeeping)](https://www.reddit.com/r/Bookkeeping/comments/1uv72v0/how_much_of_your_month_is_still_just_retyping/)
- [AI demos for audit work: everyone fell apart (r/Accounting)](https://www.reddit.com/r/Accounting/comments/1ta0hlv/ai_demos_for_audit_work_everyone_fell_apart_the/)
- [What has been your experience with QBO AI bank reconciliation? (r/QuickBooks)](https://www.reddit.com/r/QuickBooks/comments/1p8b33z/what_has_been_your_experience_with_qbo_ai_bank/)
- [1 Month of Claude in Finance](https://www.youtube.com/watch?v=shNYNFFCz2g)
