Convert a Bank Statement for Xero
Xero’s Import a Statement flow is good at exactly one thing: taking a well-formed CSV or OFX file and turning it into statement lines to reconcile. What it won’t take is the PDF your client’s bank actually produces. SheetMyBank closes that gap — it parses the PDF in your browser, reconciles every row against the statement’s running balance, and exports a CSV (or OFX) that Xero’s importer maps first try.
Nothing is uploaded anywhere. The statement is processed on your device, and you import the finished file into Xero yourself.
Drop your bank statements here (PDF or photo)
One file or many — processed entirely on this device, nothing is uploaded. Scans and photos (including iPhone HEIC) are read with on-device OCR (beta).
No statement handy?
Free for your first 5 pages each month · No upload — processed on your device · Balance-verified output
Getting statement lines into Xero without a feed
Unsupported banks
Not every bank has a Xero feed, and smaller institutions and credit unions often never will. A monthly PDF-to-CSV conversion is the standing workaround: five minutes per statement instead of an evening of data entry.
Historical periods
Feeds start from the day they’re connected. For anything earlier — a new client’s prior year, a dormant account, a catch-up job — the statements are the record, and importing them as CSV is how the history gets in.
Scans and paper
Clients photograph statements or scan filing-cabinet paper. Built-in OCR reads statements with no text layer, and the balance check verifies every extracted row before the file is generated for Xero.
CSV or OFX — and why not QBO
For Xero, CSV is the dependable choice. The importer shows you a column-mapping step, so a clean file with Date, Description, Debit, Credit, and Balance headers goes in predictably every time — and you can open it beforehand to check what you’re importing. OFX skips the mapping step where Xero accepts it, but CSV behaves the same for every bank and region, which is why it’s the format we recommend by default. One format to avoid: QBO. It’s QuickBooks’ Web Connect format and Xero doesn’t read it — if you’re on QuickBooks instead, see converting a bank statement for QuickBooks.
The part that saves reconciliation headaches is what happens before export. Every row is checked against the running balance — previous balance plus this row’s amount must equal this row’s balance — so dropped rows and flipped signs are flagged in the preview instead of surfacing weeks later as an unreconcilable difference in Xero. Curious what’s in the CSV itself? See bank statement to CSV for the exact column layout, or start with the full conversion guide if this workflow is new to you. Ready now? Convert a statement
Frequently asked questions
Which file formats does Xero accept for bank statement imports?
Xero’s Import a Statement flow accepts CSV and OFX. It does not accept PDF, and it does not accept QBO — that’s a QuickBooks format. CSV is the safest path because Xero’s importer lets you map the columns explicitly; OFX can work where supported, but CSV behaves consistently across banks and regions. SheetMyBank exports both from the same verified rows.
Does SheetMyBank connect to my Xero account?
No. It generates the CSV or OFX file on your device, and you import it through Xero’s own Import a Statement screen (Accounting → Bank accounts → Import a Statement). There’s no API connection and no data sync — your statement never leaves your machine, and nothing enters Xero without going through Xero’s own review step.
What should the CSV look like for Xero to accept it?
Xero wants one transaction per row with a date, a description, and an amount, with a header row it can map from. SheetMyBank’s CSV provides exactly that — Date, Description, Debit, Credit, Balance — with unambiguous dates and plain numeric amounts (no currency symbols or thousands separators), so Xero’s column mapper recognizes the fields without manual cleanup.
Can I import scanned statements or photos into Xero this way?
Yes. If the PDF is a scan with no selectable text, built-in OCR takes over automatically — still in your browser. The OCR output goes through the same running-balance verification as a text PDF, so misread digits are flagged before you ever generate the CSV for Xero.
What if the statement period overlaps transactions already in Xero?
Xero flags potential duplicates during import and lets you exclude them, but the cleaner approach is to trim the CSV first — open it in Excel or Sheets, delete the rows already in Xero, and import the remainder. Because the file is on your machine, editing it before import takes seconds.