VouchRow

Open Financial Exchange from a PDF

PDF to OFX converter for bank statements

Convert a PDF statement to plain OFX, the open format that QBO and QFX are built on. It needs no Intuit bank ID, which makes it the file most accounting software will take today.

  • No Intuit bank ID required
  • Xero, Sage, MYOB, Wave and more
  • A FITID on every transaction
  • Dates that can't be misread
statement.pdf statement.ofx
<STMTTRN>  <TRNTYPE>CREDIT  <DTPOSTED>20260302  <TRNAMT>4210.00  <FITID>a3f9c2e81b07  <NAME>ACH DEPOSIT STRIPE PAYOUT</STMTTRN><STMTTRN>  <TRNTYPE>CHECK  <DTPOSTED>20260305  <TRNAMT>-1250.00  <FITID>5d10e7b4c9a2  <CHECKNUM>1042</STMTTRN><LEDGERBAL><BALAMT>15354.12
Balanced · every row checked before this OFX file was written

The short answer

Can you convert a PDF to OFX?

Yes. A PDF to OFX converter reads the transactions from the statement and writes them as an Open Financial Exchange file, a self-describing format with typed fields for date, amount, description and a unique transaction ID. Upload the PDF here, check the rows against the statement's balances, and download a .ofx that imports into Xero, Sage, MYOB, Wave, Zoho Books, QuickBooks Online and most other accounting software.

OFX is the practical middle ground among import formats. Unlike CSV, it states what every field means, so there is no column mapping to get wrong and no doubt about whether 03/04 is March or April. Unlike QBO and QFX, it carries no Intuit bank ID, so it isn't rejected because your bank isn't on a Web Connect list.

It also carries a FITID for every transaction, which lets software that tracks IDs recognise a statement it has already imported.

Step by step

How to convert a PDF to OFX and import it

  1. 1Upload the statementSign in and upload the PDF, digital or scanned. Password-protected files ask for their password, which unlocks them in your browser.
  2. 2Review the reconciliationEvery row is checked against the running balance, and the statement against its opening, closing and printed totals. Flagged rows link to the highlighted line on the PDF.
  3. 3Export OFXChoose OFX. No bank ID is asked for. Bank statements are written with the bank account structure and credit card statements with the card structure.
  4. 4Import into XeroAccounting → Bank accounts → choose the account → Import a statement, then select the .ofx. Xero reads the fields directly, with no mapping screen.
  5. 5Or into QuickBooks Online, Sage, MYOB or WaveQuickBooks Online: Transactions → Bank transactions → Link account → Upload from file. In Sage, MYOB and Wave, use the bank statement import for the account and select the OFX file. Reconcile once it's in.

Why it works

Why choose OFX

No bank ID

Plain OFX doesn't carry INTU.BID, so it works for banks that aren't enrolled in Intuit's Web Connect and for software that doesn't care.

Unambiguous dates

Dates are written as YYYYMMDD. The day-first versus month-first problem that breaks CSV imports can't happen.

Transaction IDs

Each transaction has a deterministic FITID, so converting the same statement twice gives the same IDs.

No mapping step

OFX names its own fields. Importers read them without asking which column is the amount.

Bank and card accounts

Credit card statements use OFX's credit card message set, so card software sees a card account, not a checking account.

Checked before export

A misread digit is caught on its own row

Every conversion is tested against the statement: the running balance on every row, page subtotals, opening plus movement against closing, the printed credit and debit totals, and the transaction count. When a number does not add up, VouchRow names the row and highlights the line it came from on the PDF.

Arithmetic only: it verifies amounts, balances and totals, not descriptions or dates, and two errors that cancel out would pass. The source-line link covers the rest.

How the checks work

Running balance check

RowAmountBalance
  • POS AMAZON MKTPLACE−86.4316,604.12
  • CHECK #1042−1,250.0015,354.12
  • ZELLE FROM J MORALES+640.0015,994.12

Every row agrees with the balance printed beside it.

The format

What is an OFX file?

OFX (Open Financial Exchange) is a standard for exchanging financial data between banks and software. A statement download in OFX is a text file with a header block and a tree of tagged elements: who the bank is, which account, which period, then one <STMTTRN> block per transaction.

The files written here are OFX 1.0.2, the SGML version. It has a plain-text header (OFXHEADER:100, DATA:OFXSGML, VERSION:102, CHARSET:1252) and leaf elements that aren't closed. That's not sloppiness; it's the spec, and it's the version the widest range of software reads. OFX 2.x is an XML version of the same structure, but importers that read 2.x nearly all read 1.0.2 too, while the reverse isn't true.

ElementContents
<TRNTYPE>DEBIT, CREDIT, CHECK, FEE, INT, ATM, POS, XFER, PAYMENT, DEP and similar
<DTPOSTED>Posting date as YYYYMMDD
<TRNAMT>Signed amount: negative out, positive in
<FITID>Unique, deterministic transaction ID
<CHECKNUM> / <REFNUM>Cheque number or reference, where printed
<NAME>First 32 characters of the description
<MEMO>The full description, up to 255 characters
Fields in each transaction

Compatibility

Which software accepts OFX

OFX is the closest thing to a universal statement format. These are the common destinations and how each handles it.

  • Xero: imports OFX through Import a statement, with no column mapping. Useful in the UK, Australia and New Zealand, where Xero has no native PDF import.
  • QuickBooks Online: accepts OFX alongside QBO, QFX and CSV in Upload from file, without the bank ID check that blocks many QBO files.
  • Sage: OFX works across the Sage line, which is why it's the safest starting point when you're not sure which Sage product's import guide applies.
  • MYOB: reads OFX, and its explicit sign on each amount avoids the deposit-shown-as-withdrawal problem common with MYOB CSV imports.
  • Wave and Zoho Books: both accept OFX, and it saves setting up a column mapping per bank.
  • Quicken and QuickBooks Desktop are the exceptions: they want QFX and QBO respectively, which are OFX with a bank ID added.

Encoding

Characters, currency and closing balance

The OFX 1.0.2 body is Windows-1252, a Western European character set. Smart quotes, long dashes and some currency symbols in bank descriptions are transliterated to plain equivalents. Characters with no equivalent (Arabic, Urdu, Chinese and so on) are dropped rather than turned into garbage. If the original text matters, the Excel and CSV exports keep it in full UTF-8.

The account currency is detected from the statement and written in <CURDEF>, and amounts carry the right number of decimal places for it. The statement's closing balance is written as <LEDGERBAL>, so software that shows a statement balance has the bank's figure.

Troubleshooting

When an OFX import goes wrong

OFX imports fail less often than CSV, but these come up:

SymptomCauseFix
Quicken refuses the .ofxQuicken expects QFX with a bank ID for bank accountsExport QFX with your bank's Quicken ID, or QIF
QuickBooks Desktop won't open it as Web ConnectDesktop's Web Connect import wants .qboExport QBO, or IIF if you have no bank ID
Currency mismatch errorThe statement's currency differs from the account you're importing intoImport into an account in the statement's currency
Transactions appear twiceA period imported both from the file and by a live bank feedImport only dates the feed doesn't cover
Descriptions shortenedThe importer shows NAME (32 characters) rather than MEMOThe full description is in MEMO

Side by side

QBO vs QFX vs OFX vs QIF vs IIF

Five import formats, often confused. This table shows what separates them.

OFXQBOQFXQIFIIF
Built forMost accounting softwareQuickBooks Online and DesktopQuickenQuicken and older desktop programsQuickBooks Desktop
Bank ID requiredNoYes (INTU.BID)Yes (a separate Quicken ID)NoNo
Transaction IDsYesYesYesNoNo
Date formatYYYYMMDDYYYYMMDDYYYYMMDDOrder not stated in the fileMM/DD/YYYY
StructureTagged SGMLTagged SGMLTagged SGMLLine codesTab-delimited, double-entry
Plan hereStarter and upStarter and upStarter and upStarter and upProfessional and up

Who uses it

Who uses OFX

01

Xero users outside the US and Canada

Converting PDF statements to OFX skips the CSV mapping step and the date-order problems that come with it.

02

QuickBooks users without a bank ID

When a QBO file is rejected with OL-301 because the bank isn't on the Web Connect list, the same transactions as OFX import into QuickBooks Online through Upload from file.

03

Sage and MYOB practices

One format that works across product versions and gets the sign of every amount right.

FAQ

PDF to OFX converter for bank statements: questions

How do I convert a PDF to OFX?

Upload the PDF statement, check the extracted rows (anything that breaks the running balance is flagged), and export OFX. No bank ID is needed. The file imports into Xero, Sage, MYOB, Wave, Zoho Books and QuickBooks Online.

Why choose OFX over QBO?

Because it works without an Intuit bank ID. If QuickBooks Online is rejecting your .qbo with OL-301, OFX carries exactly the same transactions and avoids the check. QuickBooks Desktop is the exception: its Web Connect import wants .qbo.

Is this OFX 1 or OFX 2?

OFX 1.0.2: SGML, with the plain-text header block. It's the version the widest range of software reads.

Can I convert a PDF to OFX for Xero?

Yes. Export OFX and import it with Accounting → Bank accounts → the account → Import a statement. OFX skips Xero's column mapping and its date-format question.

What happens to non-English descriptions?

The OFX body is Windows-1252. Smart quotes, dashes and currency symbols are transliterated, and characters with no equivalent are dropped rather than garbled. The full original text is kept in the CSV and Excel exports, which are UTF-8.

Does an OFX file include the running balance?

Not per transaction; OFX has no field for it. The statement's closing balance is written as the ledger balance. The running balance per row is in the Excel and full CSV exports.

Can I open an OFX file in Excel?

Not usefully, because it's tagged text rather than a table. If you want the data in a spreadsheet, export Excel from the same conversion; it doesn't count the pages again.

Convert a PDF statement to OFX

Create an account, upload a statement and download an OFX file with no bank ID to find. OFX is included on every paid plan, from Starter at $15 a month for 300 pages.