Skip to main content
BankFlow logoBankFlow

Bank statement to Moneydance

For the accounts Direct Connect forgot.

Moneydance imports OFX, QFX, OFC, and QIF. Convert a statement PDF to plain OFX and the accounts your bank will not connect come in the same way the connected ones do.

50 free page credits · No card · Cancel anytime

  • Plain OFX in
  • Dated, signed, identified
  • Any bank, any archive

Export transactions

1,284 rows

Format

CSVExcelJSONOFXQuickBooks
DateDescriptionAmount
2025-10-24STRIPE PAYOUT 4af2c9+4,820.00
2025-10-23AWS EMEA SARL−1,204.00
2025-10-22WHOLE FOODS MKT−112.88
1,284 rows · 3 columnsExport OFX

PDF statement you upload

scanned_statement_047.pdfUnstructured

24/10 STRIPE PAYOUT 4af2c9........4,820.00

23-10 AWS EMEA SARL us-east-1 1,204.00-

22 OCT WHOLE FOODS MKT #214 112.88

21/10 UBER *TRIP..............24.40

20-OCT-2025 GUSTO PAY 9931 18,440.00

[illegible: scan quality]

OFX file Moneydance imports

transactions_oct.ofxOFX / QBO

<STMTTRN>

<TRNTYPE>CREDIT

<DTPOSTED>20251024

<TRNAMT>4820.00

<NAME>Stripe

<MEMO>STRIPE PAYOUT 4af2c9

</STMTTRN>

<STMTTRN>

<TRNTYPE>DEBIT

<DTPOSTED>20251023

<TRNAMT>-1204.00

<NAME>Amazon Web Services

<MEMO>AWS EMEA SARL us-east-1

</STMTTRN>

… 3 more transactions

Bring it in through Moneydance's file import
A statement PDF in, an OFX ledger out: one <STMTTRN> block per transaction, typed and signed. Illustrative data.

Direct Connect covers some banks. Your archive covers all of them.

Moneydance's online banking works well where the institution supports it, and not at all where it does not, which is most smaller banks, most cards, and every account that closed before you started. What those accounts do have is statement PDFs going back years. Typing them in is the usual answer, and it is the wrong one, because Moneydance already reads the format those statements can become.

How it works

From statement PDF to Moneydance, screen by screen

  1. 01

    Upload the statement

    Scanned, multi-page, and password-protected PDFs all work, up to 50 MB each, and a whole archive can go in at once.

    BankFlow dashboard with the empty state offering a statement upload or an email import address.
    Drop the files in, forward the bank's email to a private import address, or post them to the API.
  2. 02

    Confirm the import

    Review what is queued and set whether statements carrying warnings still count. Nothing is read until you confirm.

    Import dialog with chase.pdf selected, the warning policy listed, and an Import button.
    The warning types that will still count toward analytics are named before anything is extracted.
  3. 03

    Let it parse and reconcile

    Each statement's rows are checked against its own printed opening and closing balances, so an archive that goes back years arrives verified rather than merely typed.

    Activity panel showing a Chase statement processing, with the current stage and elapsed time.
    The activity panel names the stage and the seconds elapsed as each statement moves through the queue.
  4. 04

    Tidy the descriptions

    Moneydance's own auto-categorization keys on the description, so a narration cleaned once here pays off on every later import.

    Three transactions selected, with the Actions menu open on the category picker.
    Select a range and fix the merchant or description in one action rather than a row at a time.
  5. 05

    Export OFX

    Choose OFX. Moneydance will also read QFX and OFC, but plain OFX carries nothing that belongs to another vendor's programme.

    Export dialog with OFX selected, the field list on the right, and a live preview of the rows.
    OFX and QuickBooks sit side by side in the format list. Moneydance takes the left one.

Once you have the file

Bringing the OFX into Moneydance

File import, then Moneydance's own matching pass.

  1. 1

    Open the import menu

    Moneydance imports QFX, OFX, OFC, and QIF files through its file import, alongside the direct connections it makes to banks that support them.

  2. 2

    Choose the exported .ofx file

    Point it at the file the export produced. The format is plain OFX, which Moneydance handles natively.

  3. 3

    Confirm the target account

    Pick the account in your Moneydance file that the statement belongs to, so the rows land where the balance can be checked against them.

  4. 4

    Review before committing

    Work through what Moneydance proposes, then reconcile the account against the statement's closing balance, already verified on the way out.

Moneydance also supports direct OFX connections for banks that offer them. This route is for the accounts and periods those connections do not cover.

What makes an archive worth importing

Plain OFX 1.02

The SGML profile desktop finance software expects, with the OFX header block and one <STMTTRN> per transaction. Nothing proprietary attached.

FITIDs on every transaction

The identifier OFX defines for de-duplication, so importing a period that overlaps one you already have adds only what is new.

Signs and types that agree

Debits negative, credits positive, and a TRNTYPE that matches, so direction is never inferred from the wording of a description.

Years in one pass

Upload an entire archive, check the balances tie month by month, and export it as a set rather than reconstructing it a statement at a time.

Scans and photographs

Statements that only exist on paper go through OCR before parsing, which is usually the state older archives are in.

For what Direct Connect misses

Smaller banks, credit cards, and closed accounts rarely offer a connection. They all still produce statements.

What Moneydance reads

Four file formats, and one of them is worth converting to.

FormatWhere it stands
OFXOpen Financial Exchange, and what this export produces. Typed dates, signed amounts, and identifiers.
QFXIntuit's Quicken variant. Moneydance reads it, but the file has to come from a bank in Intuit's programme.
OFCThe older Open Financial Connectivity format, still accepted and long superseded by OFX.
QIFThe oldest of the four. No transaction identifiers, so overlapping imports duplicate.

FAQ

Common questions

How do I get a bank statement into Moneydance?

Moneydance imports QFX, OFX, OFC, and QIF files. Convert the statement PDF to OFX, import the file, choose the account it belongs to, and review the rows before committing them.

Can Moneydance import a PDF?

No. Its file import handles OFX, QFX, OFC, and QIF, so a PDF statement has to be converted first, which is what this does.

I already use Direct Connect. Why would I need this?

For everything the connection does not reach: banks that never offered it, credit cards, accounts closed before you set Moneydance up, and any period from before the connection was made.

Will importing an overlapping period duplicate transactions?

Each row carries a FITID, the field OFX defines for exactly this, so software that honours it matches on the identifier rather than on the amount and date.

Do my categories come with it?

No: categories are not part of the OFX schema. The description and the resolved merchant do travel, which is what Moneydance's own auto-categorization keys on.

How far back can I go?

As far as your statements do. There is no connection window to work around, so a decade of archived PDFs converts the same way this month's does.

Converting a statement from a specific bank?

Written up for the format each of these banks prints.

Import the accounts that never connected.

Convert the statements, check the balances tie, and give Moneydance the OFX it already knows how to read.