Guides
Longer write-ups of the things a bank statement converter usually leaves you to find out on your own.
Two rulebooks that decide whether your converted file imports, and both are published by the companies that enforce them.
- Importing bank statements into QuickBooks Online — the documented CSV limits (350 KB, 1,000 lines, three or four columns), the errors they cause, and why a QBO file skips every one of them.
- The Xero CSV bank statement import format — two required fields, the sign convention, the 100,000-row ceiling, and the Payee rule that quietly creates duplicate contacts.
What the two have in common
Neither set of rules is ours. Both are written and enforced by the software you are importing into, which is what makes them worth a page each: a converted statement is not finished when the download completes, it is finished when the other program accepts it.
Both also fail late. The upload appears to work, and the refusal arrives at the column-mapping step with a message naming a column rather than the rule you broke — which is why people conclude the converter is broken when the file is merely one column too wide. And both change without announcing it. Each guide links Intuit’s and Xero’s own pages so you can check the rule against the day you are reading, rather than trusting the day we wrote it down.
When you do not need either guide
If your accounting software accepts a bank file, skip both. Every conversion here produces QBO for QuickBooks, OFX for anything that supports the open standard, and QIF for Quicken and older desktop tools. None of those go through a column-mapping step, so none of the rules in these guides apply to them.
The guides are for the case where a CSV is the only door open — which is common, because it is the one import route almost every tool has.
If a converted statement does not reconcile
Before assuming the conversion is wrong, three things are worth separating.
Did anything fail to be read at all? A balance check cannot see a block that never entered the table — the totals of what was read can add up perfectly while a whole account is missing. That is why an unread-content notice is reported separately from the balance check, by page, and travels inside every exported file rather than only appearing on screen.
Is the difference the size of one transaction, or of many? A single mismatched amount usually
points at one row you can find by its page number in the source_page column of the
CSV. A difference that matches no single row more often means an opening
balance, a carried-forward line, or a fee page that the statement prints outside the transaction
table.
Is the statement a download or a scan? A PDF downloaded from online banking carries real text; a scan or a phone photo carries only pixels, and the characters have to be recognised before anything can be added up. If you have the choice, convert the download.
Where the shorter answers live
These are reference pages rather than guides, but they answer the questions that come up most:
- What each column in the CSV means, including why one of them is allowed to stay empty.
- How the Excel workbook is laid out — one sheet per account, plus a balance-check sheet.
- Why the OFX file is written in the old SGML dialect rather than XML.
- Why QuickBooks asks which account a QBO file belongs to, and why we will not make that prompt go away.
- Which fields QIF cannot carry, and what happens to them instead.
- Which institutions’ real statements sit in our tests — and why a bank being absent from that list does not mean it will not convert.
What does not go into a guide here
A step we have not carried out, and a rule restated from memory. Every rule on these pages is either published by the company that enforces it and linked to its source, or a description of a file we write ourselves. Where we have no first-hand basis for something — the Intuit bank ID is the standing example — the guide says that plainly instead of filling the gap with a plausible answer.