GnuCash imports transactions from CSV, OFX, QFX, and QIF, but not from a PDF. Upload your statement and BankXLSX gives you a clean CSV with separate deposit and withdrawal columns for the import assistant, or an OFX the GnuCash importer reads on its own. Start free, no credit card.
Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF, MT940
Uploading...
GnuCash reads structured files, not documents. Its importers expect CSV, OFX, QFX, or QIF, and a statement PDF is none of those. Even a raw bank CSV can trip the double entry import if the columns are wrong. Here is what gets in the way.
The import menu offers CSV, OFX, QFX, and QIF. A PDF statement has to be turned into one of those before GnuCash can bring it in.
The CSV import assistant maps Deposit and Withdrawal separately rather than reading one signed amount, so a single amount column has to be split for the import to make sense.
Copying a PDF into a spreadsheet stacks the whole statement into column A with dates, descriptions, and balances jumbled together, which the assistant cannot map.
The assistant lets you choose the date format, but the source has to be consistent. A statement mixing formats leads to skipped or misdated rows.
GnuCash is double entry, so every imported line needs a balancing account. A clean file makes the import matcher propose the right one instead of guessing on garbage.
Bank CSVs often include a running balance that GnuCash should not treat as a transaction. It has to be dropped or left unmapped, which is easy to miss by hand.
Upload the statement PDF and the converter reads each transaction, then writes it so the GnuCash importer maps it without a fight.
The CSV comes out with separate deposit and withdrawal columns, exactly what the GnuCash column mapping assistant expects.
Prefer the OFX importer? Export OFX or QFX and GnuCash reads the file directly, remembering the account for next time.
Dates come out in a single clean order so you can set m-d-y in the assistant once and every row lines up.
Long transaction descriptions stay in one field instead of splitting across rows, so the import matcher can recognize payees.
Convert a statement into a single clean file so you can point the whole import at one GnuCash account without an account column.
256-bit encryption on upload and you can delete your files whenever you want.
No install and no credit card to start.
Drag your bank or credit card statement PDF into the box above. Several months at once is fine.
Tip: Scanned statements work too.
Choose CSV for the column mapping assistant, or OFX if you want GnuCash to read the file with no mapping.
Tip: CSV gives the most control.
Use File then Import, choose your format, map the columns if you picked CSV, and let the Import Matcher assign the transfer accounts.
Tip: The matcher learns your payees.
GnuCash is free, open source, double entry software used for personal and small business books. The people converting statements for it are usually keeping their own ledger and want real transaction history without retyping it.
Run the books in GnuCash and need each month of bank activity as clean rows to categorize and reconcile.
Keep household accounts in GnuCash and want to import a statement instead of entering fifty lines by hand.
Maintain an organization ledger in GnuCash and import the bank statement each period to keep it current.
Prefer open source tools and want a dependable file the CSV assistant or OFX importer will take every time.
No. GnuCash imports transactions from CSV, OFX, QFX, and QIF files, and PDF is not on that list. The bridge GnuCash lacks natively is exactly the conversion step: turn the statement PDF into a CSV for the column mapping assistant, or into an OFX the GnuCash importer reads on its own. Both routes feed the same Import Matcher, so once the file is clean the rest is quick.
GnuCash offers several import paths under the File then Import menu. Which one you pick mostly comes down to how much control you want over the columns.
| Format | How it imports | Best when |
|---|---|---|
| CSV | Interactive column mapping assistant with dropdowns for each column. | You want to see and control exactly how each field maps. |
| OFX / QFX | The OFX importer reads the file directly and remembers the account. | You want the least manual work and repeat imports. |
| QIF | A multi step wizard for the Quicken Interchange Format. | Your data already exists as QIF from another tool. |
The CSV Transaction Import assistant does not force a fixed header. Instead you map each column with a dropdown, which is forgiving, but the data underneath still has to be sensible. The minimum fields it needs are Date, Description, and Deposit and or Withdrawal, plus the destination Account, which you can set in the import window rather than in the file if every row belongs to one account.
| Column | What GnuCash does with it |
|---|---|
| Date | Transaction date. You choose the format, including m-d-y for US statements. |
| Description | The payee or memo the Import Matcher uses to recognize the transaction. |
| Deposit | Amount that increases the balance. Left blank on withdrawals. |
| Withdrawal | Amount that decreases the balance. Left blank on deposits. |
| Account | Optional in the file. Set the target account in the import window if the whole file is one account. |
That separate Deposit and Withdrawal design is why a raw bank CSV with one signed amount column often needs reshaping. BankXLSX writes the two columns for you, so the assistant maps them directly.
An OFX or QFX file carries the transaction structure and source tags inside it, so the GnuCash importer reads the date, amount, and description without you mapping anything, and it remembers which account the source belongs to on later imports. For a recurring monthly job that saves real time. CSV still wins when you want to inspect the rows or fix a stray description before anything touches the ledger.
Because GnuCash is double entry, every imported bank line needs a balancing account, an income, expense, or transfer account for the other side. The Import Matcher uses a Bayesian approach that learns from your history: it proposes a destination account, flags likely duplicates by date, amount, and description, and lets you accept or change each row. The first import takes a few minutes of assigning accounts; after that the matcher does most of the work. One caveat, multi currency imports can create unexpected adjustment entries, so keep a file to a single currency where you can.
Once the transactions are in, categorize each to the right account and reconcile against the statement balance. The same converted file works with other tools if your setup changes. Use the bank statement OFX converter for a plain OFX, the bank statement QIF converter when a tool needs QIF, and combine bank statements in Excel to merge months first. The general bank statement converter handles the source PDF, and bank statement reconciliation covers tying the imported data back to the bank.
Plenty of small businesses start in GnuCash and later move to hosted accounting. If that is you, the same statement data converts to an importable file for QuickBooks Online with a bank statement to QuickBooks converter, so the switch does not mean rekeying your history.
No. GnuCash imports transactions from CSV, OFX, QFX, and QIF files, not from PDF. To get a statement into GnuCash you convert the PDF to one of those formats first. A CSV goes through the column mapping assistant, while an OFX or QFX is read directly by the GnuCash importer.
The CSV Transaction Import assistant needs at least Date, Description, and Deposit and or Withdrawal, plus a destination Account that you can set in the import window instead of the file. Deposit and Withdrawal are separate columns rather than one signed amount, so spending and income sit in their own fields.
OFX or QFX is easier for a repeat job because GnuCash reads the file directly and remembers the account. CSV gives you more control since the assistant lets you map every column and review the data first. BankXLSX exports both, so you can match the format to how much you want to check.
The CSV assistant maps a Deposit column and a Withdrawal column separately rather than reading a single signed amount. A raw bank export with one amount column often has to be reshaped into two. A converted file already has the deposit and withdrawal columns split, so the assistant maps them without editing.
GnuCash is double entry, so each imported line needs a balancing account. The Import Matcher proposes a transfer account based on your history and lets you accept or change it, and it learns your payees over time. The first import takes a little setup; later ones are mostly automatic.
Yes. The Import Matcher flags likely duplicates by comparing date, amount, transaction ID, and description against what is already in the account. It marks each row to import, update, or skip, so re-importing an overlapping period does not silently double your transactions.
The CSV Transaction Import assistant and the OFX importer are stable across the GnuCash 5.x line. The CSV assistant was substantially improved in version 3, so any modern GnuCash reads a well formed CSV or OFX. Set the date format to match your statement in the assistant, m-d-y for US statements.
Bank statements contain account numbers, so handle them carefully. BankXLSX encrypts uploads with 256-bit encryption, does not resell or share your financial data, and lets you delete uploaded files at any time. Convert the file, import it into GnuCash, and remove the upload when you are done.
Convert a statement for YNAB import.
Export a plain OFX for the GnuCash importer.
Convert to QIF when you need it.
From the same family of tools
Get started converting bank statements to spreadsheets.
USD
per month
billed as
$288 yearly
Choose speed vs accuracy when extracting
| Base AI Faster | 2,500 pages |
| Pro AI Best accuracy | 500 pages |
Scale statement conversion across your team with automation.
USD
per month
billed as
$888 yearly
Choose speed vs accuracy when extracting
| Base AI Faster | 10,000 pages |
| Pro AI Best accuracy | 2,000 pages |
Enterprise-grade bank statement conversion and controls.
USD
per month
billed as
$ yearly
Choose speed vs accuracy when extracting
| Base AI Faster | pages |
| Pro AI Best accuracy | pages |