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
<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
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
- 1Upload the statementSign in and upload the PDF, digital or scanned. Password-protected files ask for their password, which unlocks them in your browser.
- 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.
- 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.
- 4Import into XeroAccounting → Bank accounts → choose the account → Import a statement, then select the .ofx. Xero reads the fields directly, with no mapping screen.
- 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 workRunning balance check
- 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.
| Element | Contents |
|---|---|
| <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 |
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:
| Symptom | Cause | Fix |
|---|---|---|
| Quicken refuses the .ofx | Quicken expects QFX with a bank ID for bank accounts | Export QFX with your bank's Quicken ID, or QIF |
| QuickBooks Desktop won't open it as Web Connect | Desktop's Web Connect import wants .qbo | Export QBO, or IIF if you have no bank ID |
| Currency mismatch error | The statement's currency differs from the account you're importing into | Import into an account in the statement's currency |
| Transactions appear twice | A period imported both from the file and by a live bank feed | Import only dates the feed doesn't cover |
| Descriptions shortened | The importer shows NAME (32 characters) rather than MEMO | The 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.
| OFX | QBO | QFX | QIF | IIF | |
|---|---|---|---|---|---|
| Built for | Most accounting software | QuickBooks Online and Desktop | Quicken | Quicken and older desktop programs | QuickBooks Desktop |
| Bank ID required | No | Yes (INTU.BID) | Yes (a separate Quicken ID) | No | No |
| Transaction IDs | Yes | Yes | Yes | No | No |
| Date format | YYYYMMDD | YYYYMMDD | YYYYMMDD | Order not stated in the file | MM/DD/YYYY |
| Structure | Tagged SGML | Tagged SGML | Tagged SGML | Line codes | Tab-delimited, double-entry |
| Plan here | Starter and up | Starter and up | Starter and up | Starter and up | Professional and up |
Who uses it
Who uses OFX
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.
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.
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.
Keep going
Related guides and converters
Related formats
Software that takes OFX
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.