Skip to content
Banking Converter

.pdf → .ofxFree · 25 pages a month

Convert bank statements to OFX.

Open Financial Exchange is the interchange format that desktop and small-business accounting tools have shared since the late 1990s. This converter writes OFX 2.2 (XML) with a bank or credit card statement response, a ledger balance and one statement transaction per row extracted from your PDF.

  • Balances checked before download
  • No card required
  • Original PDF deleted after 24 hours

Convert a statement to OFX

STEP 1 / 3

Drop a PDF statement here, or

Choose a PDF
  • PDF only
  • text-based or scanned
  • password-protected
  • up to 5 MB on the free plan

No card required. Files are checked as soon as they are added; originals are deleted 24 hours after processing.

What the OFX file contains.

An OFX 2.2 XML document with a sign-on block, a bank or credit card statement response, the account it belongs to, the statement period, one STMTTRN per transaction and a ledger balance with the closing figure.

northgate-2210-2026-08.ofx✓ Round trip validated

Document skeleton

<?xml version="1.0" encoding="UTF-8"?>
<?OFX OFXHEADER="200" VERSION="220" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?>
<OFX>
  <SIGNONMSGSRSV1>…</SIGNONMSGSRSV1>
  <BANKMSGSRSV1>
    <STMTTRNRS>
      <STMTRS>
        <CURDEF>USD</CURDEF>
        <BANKACCTFROM><BANKID>000000000</BANKID><ACCTID>****2210</ACCTID><ACCTTYPE>CHECKING</ACCTTYPE></BANKACCTFROM>
        <BANKTRANLIST><DTSTART>20260801120000[0:GMT]</DTSTART><DTEND>20260831120000[0:GMT]</DTEND>
          <STMTTRN>…</STMTTRN>
        </BANKTRANLIST>
        <LEDGERBAL><BALAMT>9300.63</BALAMT><DTASOF>20260831120000[0:GMT]</DTASOF></LEDGERBAL>
      </STMTRS>
    </STMTTRNRS>
  </BANKMSGSRSV1>
</OFX>

Fields written for each transaction (fictional statement)

Fields written for each transaction (fictional statement)
Statement rowTRNTYPETRNAMTCHECKNUMFITID basis
Payroll deposit ACME Design LLCCREDIT2500.00account, 2026-08-02, 2500.00, description, row 1
Check 1042CHECK-1200.001042account, 2026-08-05, -1200.00, description, row 3
Transfer to savings ****4471XFER-500.00account, 2026-08-09, -500.00, description, row 4
Mobile depositDEP320.00account, 2026-08-18, 320.00, description, row 6

The FITID is a hash of the basis columns, so re-running the conversion, or converting a corrected PDF of the same statement, yields identical ids.

Why convert bank statements to OFX here.

  1. 01

    Stable transaction ids

    The FITID for a row depends only on the account, date, amount, normalised description and ordinal, so every run produces identical ids and importers never see the same transaction twice.

  2. 02

    Correct signs

    Money in is positive, money out is negative. Credit card statements use the liability convention: charges negative, payments positive.

  3. 03

    Names and memos within limits

    NAME is capped at 32 characters and MEMO at 255, per the OFX A-32 and A-255 limits, and the full description always survives in MEMO.

  4. 04

    Any bank, any country

    Dates in any regional format are normalised to OFX timestamps at noon GMT, and CURDEF is taken from the statement. Amounts are never converted between currencies.

  5. 05

    Validated before release

    The exporter parses its own output with a tolerant reader that also understands SGML 1.x, and compares every amount and FITID with the extracted data.

  6. 06

    Reconciled and deleted

    Balances are checked against the printed opening and closing figures before you download. Originals are deleted 24 hours after processing; exports and extracted transactions 7 days after conversion; Delete now removes everything immediately.

How to convert a bank statement to OFX

  1. Upload your statement

    Drop a PDF into the converter above. Text and scanned files are accepted on every plan, password-protected PDFs from Starter, and you see the page count before anything else happens.

  2. Choose OFX

    Select OFX as the output. If your importer needs a real routing number rather than the placeholder BANKID, enter it in the export options.

  3. Review the result

    The extracted rows are shown next to the original page. Flagged rows carry a reason; click any row to see where it came from and edit, merge or split it.

  4. Download and import

    Download the .ofx file and import it into Quicken, GnuCash, Xero, Sage or any other OFX reader. Exports are regenerated whenever you edit.

OFX technical notes.

The conventions this exporter follows, so you can predict how your importer will treat the file before you open it.

  • Document structure

    OFXHEADER 200
    VERSION 220

    SIGNONMSGSRSV1 + BANKMSGSRSV1 (or CREDITCARDMSGSRSV1)

    What is an OFX file?
  • BANKID placeholder

    000000000 when no routing number or sort code is printed
    fails the routing checksum, never impersonates a bank

  • Timestamps

    YYYYMMDD120000[0:GMT]
    DTSTART and DTEND set to the statement period

    DTASOF on LEDGERBAL

  • OFX, QFX and QBO

    QFX adds Intuit identifiers for Quicken
    QBO is the QuickBooks variant on OFX 1.02

    What is a QFX file?

Bank statement to OFX: questions

OFX 2.2 in XML form (header VERSION=220). Importers that only read the older SGML 1.x style should use the QBO export for QuickBooks or ask us about a 1.x profile.

Convert your bank statement to OFX now.

Free plan: 25 pages a month, no card required.

25 pages per month · No card required · No bank login