PDF bank statement to QIF converter
When an import screen only takes QIF, this is the fastest clean path from a statement PDF. Reviewed rows written as simple records — date, signed amount, payee, done.
The sample is a synthetic statement — no real bank, person, or account — and the excerpt shown is taken from that exact file, byte for byte.
!Type:BankD01/05/2026T8400.00PBACS CLIENT PAYMENT HARWOOD DEVELOPMENTS INV 2041^D02/05/2026T-2340.00PSUPPLIER PAYMENT ACME TIMBER WHOLESALE LTD^The first lines of the sample file — the !Type:Bank header, then one record per transaction: D date, T amount, P payee, ^ to close.
Four line types. That's the whole format.
QIF predates currencies-in-files and stable IDs. What it does have is simplicity — and wide acceptance on manual-import screens.
- !Type:Bank
- The header line — it tells the importer these are bank transactions.
- D — date
- Slash-separated — dd/mm/yyyy, or mm/dd/yyyy when the statement itself is US-formatted. Importers ask you to confirm the date order, so check their preview.
- T — amount
- The signed amount: money in positive, money out negative — the standard QIF convention.
- P — payee
- The reviewed description, flattened to a single line. Each record ends with a ^ separator line.
- Deliberately absent
- No currency field, no balances, no record IDs — QIF simply doesn’t have them. If those matter to your workflow, use OFX or the generic CSV.
Convert a bank statement to QIF — with the checking done first.
Every row is extracted beside its source page and checked against the statement's balances before it becomes a record. Here is one reviewed row as a complete QIF record:
| Date | Description | Amount | Source page |
|---|---|---|---|
| 6 May 2026 | HMRC VAT REF 475992103 | (£4,682.10) | 1 |
D06/05/2026T-4682.10PHMRC VAT REF 475992103^A file you import yourself — nothing stays linked.
You download the QIF and choose it on your software's manual import screen. There is no feed and no link between StatementStudio and your accounting tool — the import preview you confirm is your software's own.
Importing a QIF file
- Download your reviewed QIF file.
- In Xero or Sage, open the manual bank-statement import and choose the QIF file — both accept the format.
- Confirm the date order when the import asks — QIF dates are slash-separated.
- Review the imported amounts. QIF carries no currency field, so confirm the amounts landed in the currency you expect.
Xero documents its QIF flow in Import a QIF bank statement; Sage covers QIF alongside CSV in its Import bank transactions guide.
Old format, honest edges.
Most QIF limits come from the format itself. Where a statement can't be represented faithfully, the export refuses rather than distorting it.
- No currency field
- QIF has no way to say which currency an amount is in — so check the amounts after import, and mixed-currency statements refuse to export entirely.
- An older text encoding
- QIF files are written in cp1252, the encoding legacy importers expect. Characters outside it — including most emoji — become “?” in the file rather than corrupting it.
- Missing dates or amounts
- Every record needs a date and a signed amount. If a reviewed row lacks either, this export stays unavailable until the row is resolved in review.
Review your transactions before importing, and check the import preview in your accounting software.
If QIF feels too bare.
- OFX
- The richer statement file: currency, closing balance, and stable record IDs travel inside. Bank statement to OFX
- Everything else
- The bank statement converter lists every output, including the fully documented generic CSV.
About the QIF output
What accepts a QIF file?
Xero and Sage both accept a manual QIF import; Sage’s QIF import asks you to confirm the date order.
Does QIF include the currency?
No, QIF has no currency field. After importing, check that the amounts landed in the currency you expect.
What happens to unusual characters?
QIF is written in an older text encoding (cp1252). Characters outside it, including most emoji, are replaced with “?” in the file rather than corrupting it.
Do you support mixed-currency statements?
No, QIF has no field to say which currency an amount is in, so a mixed-currency statement can’t be exported this way.