How to Convert CBA Bank Statements to Xero CSV (Free)
Upload your Commonwealth Bank PDF statement to ReckonFlow and get a free, balance-verified CSV ready for Xero import in seconds. No column mapping needed — the CBA parser extracts every transaction from NetBank statements and produces a file that Xero accepts on the first try.
Why CBA bank feeds sometimes don't work (broken feed issue)
Bank feeds are sold as a set‑and‑forget solution, but in practice they can break for a variety of reasons. A common trigger is a change in the bank’s online banking portal – CBA occasionally updates its security layers or modifies the way transaction data is exposed via the Open Banking API. When that happens, the feed connector in Xero may stop pulling new transactions, leaving you with a gap that shows up as a “feed error” in the bank reconciliation screen.
Another scenario is when a client has multiple CBA accounts linked to a single Xero organisation. If one account is temporarily locked (for example, after a failed login attempt or a fraud alert), the feed for that account can be disabled while the others continue to work. The result is a mixed feed where some accounts appear up‑to‑date and others lag behind, forcing you to manually download statements for the problematic account.
Finally, feeds can fail simply because the client’s Xero subscription plan doesn’t include the bank feed add‑on, or because the feed has exceeded its daily transaction limit. In any of these cases, the bookkeeper needs a fallback method that works reliably without waiting for the bank or Xero to fix the integration.
How to manually convert PDF statements when bank feeds fail
When the feed is down, the most straightforward approach is to download the PDF statement directly from CBA’s NetBank portal and turn it into a CSV that Xero will accept. Most bookkeepers already have the PDF on hand – either emailed by the client or downloaded during a routine check‑up. The key is to ensure the PDF contains the transaction details in a readable table format; scanned images or picture‑only PDFs will need OCR first, which adds extra steps.
Start by opening the PDF in a viewer that lets you select text (Adobe Reader, Preview, or even a web browser). If you can highlight and copy the transaction rows, you’re in good shape. If the text is locked behind an image, run the file through a free OCR tool such as Smallpdf’s PDF to Word converter or the built‑in OCR in Google Drive before proceeding.
Once you have selectable text, copy the transaction table into a spreadsheet program like Microsoft Excel, Google Sheets, or the free LibreOffice Calc. From there you’ll need to clean up the data: remove header rows that repeat on each page, delete any summary lines (opening balance, closing balance, fees), and make sure each column corresponds to date, description, amount, and optionally a reference number. Australian dates in CBA PDFs appear as DD/MM/YYYY, which is fine for most spreadsheets but can cause hiccups when Xero expects YYYY-MM-DD in its CSV import – we’ll cover that in the next section.
Step-by-step: upload CBA PDF → verify balance → export Xero CSV
Below is a practical workflow you can follow the next time a CBA feed lets you down. Feel free to adapt the tool names to what you already have on hand; the logic stays the same.
1. Download the statement
Log into NetBank, navigate to Accounts → Statements, select the relevant account and date range, and click “Download PDF”. Save the file to a folder you’ll remember, e.g., CBA_Statements/July2025.pdf.
2. Open the PDF and copy the table
- If the PDF is text‑based: click the first transaction row, drag to the last row, press Ctrl+C.
- If it’s image‑based: upload the PDF to Google Drive, right‑click → Open with → Google Docs. Docs will run OCR automatically; then copy the table from the generated document.
3. Paste into a spreadsheet
Open a new sheet in Google Sheets (free with a Gmail account) and paste (Ctrl+V). You’ll likely see the data split across columns already; if not, use “Data → Split text to columns” and choose the delimiter that matches the PDF (often a space or tab).
4. Clean up the data
- Delete the first row if it repeats the column headings on each page.
- Remove any rows that contain only totals, fees, or interest summaries.
- Ensure you have four columns: Date, Description, Amount (positive for credits, negative for debits), and optionally Ref/ID.
- If the Amount column shows both debit and credit in separate columns, combine them using a formula like =IF(C2="", -B2, B2) assuming B is debit and C is credit.
5. Adjust the date format for Xero
Xero’s CSV import expects dates in ISO format (YYYY-MM-DD). In Google Sheets, add a helper column with the formula =TEXT(A2, "yyyy-mm-dd") (assuming column A holds the raw DD/MM/YYYY date). Copy the helper column, paste‑special as values over the original date column, then delete the helper column.
6. Verify the opening and closing balances
At the bottom of your sheet, calculate the sum of the Amount column. Add the opening balance from the PDF (usually shown at the top of the statement) to this sum. The result should match the closing balance printed on the statement. If it doesn’t, double‑check for missed transactions or incorrect signs on amounts.
7. Export as CSV
Choose File → Download → Comma‑separated values (.csv, current sheet). Name the file something descriptive like CBA_July2025_Xero.csv.
8. Import into Xero
In Xero, go to the relevant bank account → Bank Statements → Import a Statement. Browse to the CSV you just saved, map the columns (Date → Date, Description → Payee, Amount → Amount), and click Import. Xero will validate the file; if the date format is correct and the balances line up, the transactions will appear ready for reconciliation.
Following these steps takes roughly ten minutes for a typical month‑end statement and costs nothing beyond the time you already spend on bookkeeping.
Why Xero's native CSV import format is finicky with AU dates
Xero’s CSV import is built around the ISO 8601 date standard (YYYY-MM-DD). While this makes sense for a global product, it can trip up Australian users who are accustomed to DD/MM/YYYY in bank statements, invoices, and even the Xero interface itself. When you upload a CSV that still contains DD/MM/YYYY dates, Xero will either reject the file outright with an error like “Invalid date format” or, worse, silently misinterpret the dates (e.g., treating 01/02/2025 as 2 February instead of 1 February). The latter scenario leads to reconciliation nightmares because transactions appear in the wrong month, throwing off BAS calculations and profit‑and‑loss reports.
The workaround is simple: convert the dates before you export the CSV. As shown in the step‑by‑step guide, a quick spreadsheet formula does the job. Some bookkeepers prefer to use
---
Try it with a real CBA statement
Instead of converting manually, upload your CBA statement PDF to ReckonFlow and get the CSV in seconds.
The balance is verified automatically before you import to Xero.