Bank statement to Sage
One account per file, the way Sage wants it.
Convert statement PDFs into OFX for Sage Accounting's bank statement import: scoped to a single account, because Sage reads the first account in an OFX file and ignores the rest.
50 free page credits · No card · Cancel anytime
- OFX, not a mapped CSV
- Scoped per bank account
- Balance-checked first
Export transactions
1,284 rowsFormat
| Date | Description | Amount |
|---|---|---|
| 2025-10-24 | STRIPE PAYOUT 4af2c9 | +4,820.00 |
| 2025-10-23 | AWS EMEA SARL | −1,204.00 |
| 2025-10-22 | WHOLE FOODS MKT | −112.88 |
PDF statement you upload
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 Sage imports
<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
Sage takes six file formats. Your bank sends a seventh.
Sage Accounting will read OFX, QIF, CSV, and XLS, plus BAI2 and CAMT053 for the banks that speak them. What it will not read is the PDF sitting in your downloads folder, which is the only thing many banks hand a small business for an account that has no feed. So the choice becomes typing it in or building a CSV whose headers have to be right every single time.
How it works
From statement PDF to Sage, screen by screen
- 01
Upload the statement
Scanned, multi-page, and password-protected PDFs all work, up to 50 MB each.

Drop the file in, forward the bank's email to a private import address, or post it to the API. - 02
Confirm the import
Review what is queued and decide whether statements carrying warnings still count in your analytics. Nothing is read until you confirm.

The warning types that will still count toward analytics are named before anything is extracted. - 03
Let it parse and reconcile
Rows are extracted and checked against the statement's own opening and closing balances, so a short statement is caught here rather than during a Sage reconciliation.

The activity panel names the stage and the seconds elapsed as the statement moves through the queue. - 04
Filter to one bank account
This is the step that matters for Sage. An OFX file holding two accounts imports as one, so scope the export to a single account before it leaves.

Filter down to one account and one period, then act on exactly that selection. - 05
Export OFX
Choose OFX rather than QuickBooks. Sage wants the plain file, not the Intuit-headed .qbo variant of it.

OFX and QuickBooks sit side by side in the format list. Sage takes the left one.
Once you have the file
Importing the statement into Sage
Sage's import is per bank account, and it is fussier about OFX than it looks.
- 1
Open Banking, then the bank account
The import belongs to an account rather than to the company, so pick the account this statement covers first.
- 2
Choose Import Statement and select the file
Sage accepts OFX, QIF, CSV, and XLS here. Files up to 250 MB are allowed, which no statement will trouble.
- 3
Check it read the right account
Sage imports transactions from the first bank account inside an OFX file and ignores any others, which is why the export was scoped to one.
- 4
Review and confirm
Sage lists what it read before committing. Once confirmed, the transactions are there to match and reconcile.
Sage also accepts BAI2 and CAMT053 for banks that provide them. If yours does, those come straight from the bank and need no conversion.
What makes a Sage import behave
Scoped to one account
Sage reads the first bank account in an OFX file and ignores the rest, so an export filtered to a single account is the difference between a clean import and a silently partial one.
OFX instead of a mapped CSV
Sage's CSV import needs the right headers for the shape of your file. In OFX the date, amount, and identifier are typed fields, so there is nothing to map and nothing to get wrong twice.
Balance-checked before it leaves
Opening and closing balances are reconciled against the parsed rows, so a missing page surfaces before it becomes a reconciliation that will not close.
FITIDs for overlap
Every transaction carries the identifier OFX defines for de-duplication, so importing a period that overlaps one already in Sage adds only what is new.
Scanned statements handled
A statement that came back as a scan or a photograph goes through OCR before parsing, so a client's emailed copy still converts.
One period at a time
Filter to a month, a quarter, or a year and export exactly those rows, rather than everything the ledger holds.
What Sage accepts, and where each one lands
Six formats reach Sage's bank import. They are not equally convenient.
| Format | Where it stands |
|---|---|
| OFX | Industry standard, uploaded without editing. One caveat: Sage imports the first bank account in the file and ignores the others. |
| CSV / XLS | Accepted, but the headers must match the shape of your file, which is a mapping you own forever. |
| QIF | Accepted, and awkward: Sage's own guidance has you open the file in a text editor to check transaction order. |
| BAI2 / CAMT053 | Bank-issued formats. If your bank offers them, take them straight and skip converting. |
| Not accepted, which is where this comes in. |
FAQ
Common questions
How do I import a bank statement into Sage Accounting?
Sage cannot read a PDF, so convert the statement to OFX first. Then open Banking, pick the bank account, choose Import Statement, and upload the file. Sage lists what it read before you confirm.
Why does my OFX import miss transactions?
Usually because the file contains more than one bank account. Sage imports transactions from the first account in an OFX file and ignores the rest, so export one account at a time.
OFX or CSV for Sage?
OFX, where you have the choice. Sage's CSV import depends on the headers matching the shape of your file, while an OFX file carries typed dates, signed amounts, and transaction identifiers with no mapping step at all.
Will re-importing a period duplicate transactions?
Each transaction carries a FITID, the field OFX defines for de-duplication, so an overlapping import is matched on that identifier rather than on the description and amount.
Does this work with Sage 50 as well as Sage Accounting?
The conversion is the same either way: the output is a standards-compliant OFX file. What differs is where the import lives in each product, so check your version's own bank import screen for the exact path.
Can I convert a whole year at once?
Yes. Upload every statement, let each one reconcile against its own printed balances, then export per account. Sage's own limit is 250 MB per file, which no statement export will approach.
Converting a statement from a specific bank?
Written up for the format each of these banks prints.
Keep exploring
Bank Statement → QuickBooks
Categorize first, then export an OFX/QBO QuickBooks imports.
Bank Statement → Xero
OFX for Import a Statement, including pre-feed history.
Bank Statement → GnuCash
Plain OFX for File → Import → Import OFX/QFX.
Bank Statement → Moneydance
OFX for the accounts Direct Connect cannot reach.
Bank Statement → Wave
The file format Wave recommends over CSV.
Give Sage a file it can read.
Convert the statement, scope it to one account, and import OFX instead of maintaining a CSV mapping.