Actual Budget Import PDF Bank Statements: Convert to OFX and Import
Sep 19, 2026 · Updated Sep 21, 2026
Convert your bank statement to OFX now
PDF, JPG, PNG, BMP, HEIC, TIFF
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF
Uploading...
All data: Extracts every table and text field from each page.
Actual Budget cannot import a PDF bank statement. It imports CSV, QIF, OFX, QFX and CAMT files, and its own documentation recommends OFX or QFX. So the fastest way to get years of old statements into Actual is to convert the PDFs to OFX, then use Import on the account. OFX carries a transaction id for every line, which Actual uses to skip duplicates when a file overlaps what is already there.
This article is for people who want more history in Actual than bank sync or a 90 day download will give them: someone moving over with several years of statements, a self employed person who needs the whole tax year in one place, or anyone who keeps a manual account for a bank Actual cannot sync. The converter above this article handles the PDF step. Below is what to pick, how to import it, and where it goes wrong.
Can Actual Budget import PDF bank statements?
No. The importer reads financial files, not documents. Actual lists five formats it accepts: CSV, QIF, OFX, QFX and CAMT. A PDF statement has the same transactions printed as text, and in a scanned statement not even that, so something has to read the page and write the transactions into one of those five formats. There are a few community scripts on GitHub that do this for one or two specific banks. For statements from any US bank, including scans of paper statements, a converter that reads the layout is the practical route.
What file format does Actual Budget import best?
OFX. Actual says duplicate detection works best with OFX and QFX because they provide an id for each transaction. With CSV and QIF it can only compare date, amount and payee. The comparison, from Actual's documentation:
| Format | Actual imports it? | Duplicate protection | Column mapping needed | Verdict for old PDF statements |
|---|---|---|---|---|
| OFX | Yes, recommended | Transaction id first, then date, amount and payee | No | Best choice |
| QFX | Yes, recommended | Same as OFX | No | Fine if your bank gives you one; converters cannot make a real QFX |
| CSV | Yes | Date, amount and similar payee only | Yes, every import | Works, more setup |
| QIF | Yes | Date, amount and similar payee only | No | Older format with no transaction id |
| CAMT.053 | Yes | Depends on the bank file | No | European bank format, rarely offered by US banks |
| No | Not applicable | Not applicable | Convert first |
One caution on QFX: it is Quicken's variant of OFX and a genuine one carries a bank identifier issued by Intuit. A converter can write OFX, which Actual reads in exactly the same way, so there is no reason to look for QFX output. Our converter exports OFX, CSV and Excel.
How do I import OFX into Actual Budget?
- Convert the PDF statements above and download the result as OFX. Keep each account's files together so nothing lands in the wrong register.
- In Actual, open the account the transactions belong to. If you are adding a bank Actual has never seen, create the account first with an opening balance as of the day before your oldest statement.
- Press Import and select the OFX file.
- Leave Merge with existing transactions on so Actual checks each line against what is already in the account.
- Review the preview, import, then compare the account balance on the last statement date with the closing balance printed on that statement.
That last check is the one that matters. If the balance matches on the closing date of each statement, every transaction arrived with the right sign and the right date. If it is off, the difference usually equals one transaction you can find by comparing the two running totals month by month.
Does Actual Budget detect duplicate transactions?
Yes. Actual first checks the transaction id from the file. If it has not seen the id, it looks for a transaction around the same date with the same amount and a similar payee, and if it finds one it treats the import as a match instead of adding a second copy. It always favors the imported version, so a transaction you typed by hand with a slightly wrong date gets the bank date after the import.
This is where the OFX you import matters. Our OFX export gives every transaction a deterministic id: convert the same statement twice and you get the same ids, so importing an overlapping file a second time does not duplicate anything. Two identical transactions on the same day, say two $20 transfers, still get different ids, so the file keeps both of them. A CSV of the same statement has no ids at all, which leaves Actual with only the date, amount and payee comparison.
One setting to know about: when merging is on, Actual also offers Reimport deleted transactions, which is checked by default for file imports. If you deliberately deleted some imported lines, for example transfers you track elsewhere, untick it before importing an overlapping file or they will come back.
How do I import a CSV file into Actual Budget?
If you would rather use CSV, Actual maps the columns for you on each import. Choose the CSV option, point the Date, Payee, Notes and Amount fields at your columns, and check the green preview date to confirm the date format was read correctly. For statements that print withdrawals and deposits in separate columns, turn on Split amount into separate inflow/outflow columns. For a credit card export where charges are positive numbers, turn on Flip amount. If the file will not load at all, change the delimiter.
Our CSV keeps the column layout of the original statement, so the split option usually fits bank accounts without editing the file. The trade off is that CSV has no transaction ids, so for multi year backfills where files may overlap, OFX is the safer choice.
Getting years of history into Actual: the options
| Route | History you get | Cost | Work |
|---|---|---|---|
| SimpleFIN bank sync | What the bank sync returns, usually recent months | SimpleFIN subscription | Low |
| OFX or CSV download from online banking | Varies by bank, often only about 90 days | None | Low per file |
| Type it in | Unlimited | None | Very high |
| Convert PDF statements to OFX | Every month you have a statement for, often several years in online banking | First 15 pages free, then $49 a month for 2,500 pages | Minutes per year of statements |
Actual's bank sync runs through SimpleFIN for US banks, with GoCardless and Pluggy.ai covering Europe and Brazil. Sync is the right tool going forward, and the downloads your bank offers are fine for the last few months. Neither reaches the years before, which exist only as monthly statements. Convert those once and let sync take over from the day after the last statement.
What does it cost to convert statements for Actual Budget?
Actual itself is free and open source; you pay for hosting if you do not run the server yourself. The conversion is the paid part. On OFXStatement the first 15 pages are free, which is enough to test a real statement from your bank and run the balance check above. After that, Starter is $49 a month for 2,500 pages, or $24.50 a month billed annually. A checking statement is usually two to six pages, so one Starter month covers several accounts over several years. Starter accepts statements up to 25 pages each; Plus, at $149 a month, removes that limit and takes 50 files in one upload. Plans are on the pricing page.
The honest comparison is your own time. A business checking account can have a thousand or more transactions a year. Typing them costs an afternoon per year per account, and typos show up months later as a balance that will not reconcile.
Who this is for, and when it is not needed
You need a converter if your older history only exists as PDF statements: you closed the account, the bank only offers 90 days of downloads, or you are starting Actual after years of using nothing. Self employed readers usually hit this when they want a full calendar year categorized before tax season; once it is, preparing and filing the return itself goes much faster because the business income and expenses are already totaled.
You do not need one if you are moving from YNAB. Actual has its own YNAB importer that brings the budget and its transactions across from a JSON export, which is a better migration than converting statements. The same goes for any bank that lets you download OFX files as far back as you need.
Other budgeting apps
The same problem exists everywhere, and the fix depends on what each app reads. Quicken Simplifi and Monarch take only CSV, with stricter column rules than Actual, so see Quicken Simplifi import transactions and importing PDF statements into Monarch Money. YNAB reads OFX as well as CSV; the YNAB CSV converter page covers its matching rules. If you want to understand what is inside the file you are importing, the OFX file format page walks through the fields Actual reads.
Common questions
What file types can Actual Budget import?
CSV, QIF, OFX, QFX and CAMT. Actual recommends OFX or QFX because those files include a transaction id it uses to avoid duplicates. PDF, Excel and image files are not supported and need converting first.
Can I import a whole year of statements at once?
Yes. Upload all twelve statements together, download the OFX output and import the files into the account one after another, then check the balance against each statement's closing balance. Overlaps are harmless because of the transaction ids.
Will importing old statements mess up my current balance?
Not if the account's opening balance is set as of the day before the oldest imported transaction. If you added the account earlier with today's balance as the opening figure, adjust that opening balance after the import so the running balance matches your statements.
Does the OFX file include the statement balance?
When the statement prints a closing balance, our OFX includes it as the ledger balance for the statement end date. When it does not, we leave the field out rather than guess, and Actual calculates the balance from the transactions.
Can I import scanned paper statements into Actual?
Yes, once converted. The converter reads scanned PDFs and photos with OCR and writes the same OFX as it does for downloaded statements. Check the balance against the paper statement, since a faint scan is where a digit is most likely to be misread.
The short version
Actual Budget imports OFX, QFX, CSV, QIF and CAMT, not PDF. Convert old statements to OFX, import them into the matching account with merging on, and check the balance against each statement. The transaction ids in the OFX let Actual skip anything it already has, so overlapping files are safe. The converter at the top of this article does the PDF step, and a full backfill for most households fits in one Starter month.