Precoded Bank Statement in Xero: Columns and Import
Quick Answer: A precoded bank statement is a CSV import for a Xero bank account where each line already carries its account code and tax rate. Because the coding travels with the file, Xero reconciles those lines as they import instead of leaving them on the Reconcile tab. Use Xero's precoded template, make sure every code and tax rate exists in your organisation, and import it through the account's import screen.
A precoded import is the fastest way to load a batch of transactions you have already coded somewhere else, such as a spreadsheet of petty cash, a historic year rebuilt for a new Xero file, or an account with no feed. A plain CSV gives Xero dates and amounts to match later; a precoded file also says which account and tax rate each line belongs to.
Drop your bank statement here
PDF or OFX · Max 4.4 MB
Uploaded over an encrypted connection. We never ask for your bank login. Privacy
Preview free with no account. Free account to download.
How do you import a precoded bank statement into Xero?
Xero Central has a dedicated article, "Import a precoded bank statement in CSV format", with a downloadable template. The sequence below follows the standard import route; check the template's headings against the current article before you build a large file.
- Download the precoded template from that Xero Central article and keep its column headings unchanged.
- Fill one row per transaction: date in your organisation's date format, a single signed amount (money in positive, money out negative), payee, description, reference, then the account code and tax rate for that line.
- Check your codes against the chart of accounts. Go to the chart of accounts in Xero and confirm every account code you used exists and is active.
- Check tax rate names against the tax rates set up in your organisation. A rate spelled differently from Xero's list will not map.
- Save as CSV (not XLSX), with no totals row at the bottom.
- Open the bank account's import screen: Accounting > Bank accounts, the account's menu, then the option to import a statement.
- Choose the file and map the columns to Xero's statement fields, including the account code and tax rate fields.
- Review the preview, then import. Lines that carry valid coding reconcile automatically; anything Xero cannot code stays on the Reconcile tab for you to finish by hand.
Xero's own overview puts it in one line: you can "import a precoded CSV list of bank transactions so it reconciles automatically when you import it" (Four ways to get your banking data into Xero).
Which columns make a statement "precoded"?
The difference from a normal statement import is two extra fields. The rest of the row is the same data any bank CSV carries.
| Field | Plain CSV import | Precoded import | Notes |
|---|---|---|---|
| Date | Required | Required | Use the date order your Xero region expects |
| Amount | Required, signed | Required, signed | One column; negative for spending |
| Payee, description, reference | Optional | Optional, but worth filling | Become the transaction's contact and details |
| Account code | Not used | The coding | Must match an account in your chart |
| Tax rate | Not used | The coding | Must match a tax rate name in your organisation |
A precoded line has room for one account code. If a single bank line needs splitting across two accounts, such as a supplier payment that is part rent and part utilities, leave the coding blank on that row and split it on the Reconcile tab after import.
What does precoding save compared with a plain CSV?
With a plain import, every line lands as an unreconciled statement line. You then open the Reconcile tab and, for each line, either match it to an existing invoice or bill or create a spend or receive money transaction and choose the account and tax rate. For 30 lines that is a short session; for 1,500 lines of a reconstructed year it is days.
Precoding moves that coding work into the spreadsheet, where you can do it in bulk: sort by payee, fill the code down, copy a tax rate to a whole block. Xero then does the posting and reconciliation in one step. It suits:
- Historic catch-up. Bringing a year or more of transactions into a new Xero organisation where nothing needs matching to invoices.
- Accounts without a feed. Loan accounts, a foreign account, or a bank Xero cannot connect to.
- Cash and clearing accounts you already track in a spreadsheet.
It suits less well when most lines should match existing invoices and bills. A precoded line creates a new transaction; if the payment also exists as a bill payment, you end up with both. For customer receipts and supplier payments that already have documents in Xero, import plainly and match.
Precoded import or bank rules?
Bank rules are Xero's other way to avoid coding the same payee every month. A rule looks for conditions on incoming lines, such as payee text or reference, and fills in the account, tax rate and contact for you to confirm. The two approaches overlap but have different jobs:
- Bank rules keep working on every future line from the feed, but each line still needs a confirm click on the Reconcile tab.
- Precoded import is one-off: it codes the lines in that file and reconciles them immediately, with no confirmation step.
Many bookkeepers use both: rules for the ongoing feed, a precoded file for the backlog before the feed started.
Building the coding column from a converted statement
The hard part of a historic catch-up is usually that the bank only offers old months as PDFs. Turning them into rows is the first step, and QuickBankConvert handles it: its output gives one row per transaction with date, description, a category and a signed amount, so your money-out lines are already negative, as Xero expects.
From there, the category column is a starting point for the account code, not the code itself. A short lookup table does the translation:
- On a second sheet, list each category or payee keyword in column A and the Xero account code you want in column B, with the tax rate in column C.
- In the statement sheet, add the account code column with a lookup such as
=XLOOKUP(C2, Codes!A:A, Codes!B:B, ""), where column C holds the category, and the same for tax rate. - Filter for blanks and code those rows by hand, or leave them blank so they stay on the Reconcile tab.
- Paste the finished columns into Xero's precoded template, matching its headings.
Excel and Google Sheets both have XLOOKUP, so either works. If you only need an uncoded import, the Xero CSV format on paid plans is ready to upload without the template step; pricing lists which plan includes it.
What goes wrong with precoded files?
- Code typos. "400" versus "4000" maps to nothing, or worse, to a different account. Validate against an export of your chart of accounts before importing.
- Archived accounts. A code that exists but is archived will not accept transactions.
- Tax rate names. Region-specific names have to match exactly, including capitalisation the way Xero lists them.
- Wrong signs. A positive amount on a purchase posts as income. Spot-check a few rows after import.
- Overlap with a feed. If the feed already delivered some of the same dates, the precoded lines duplicate them. Trim the file to the gap first.
- Lines for the wrong bank account. The import goes to the account you opened, so check the account name before choosing the file.
If an import goes wrong, you can delete the whole statement from the account's Bank Statements screen and start again, which is cleaner than fixing hundreds of posted lines one by one.
Related guides
Frequently Asked Questions
What is a precoded bank statement in Xero?
It is a CSV of bank transactions that includes an account code and tax rate on each line. Xero uses that coding to post and reconcile the lines as they import.
Do precoded transactions still appear on the Reconcile tab?
Lines with valid coding are reconciled during the import, so they skip the Reconcile tab. Lines with a missing or invalid code stay there for you to code by hand.
Can a precoded line be split across several accounts?
The file holds one account code per line. Leave the coding blank for lines that need splitting and split them on the Reconcile tab after the import.
Should I precode payments that match invoices or bills already in Xero?
No. A precoded line creates a new transaction, so a payment that should settle an existing bill would be recorded twice. Import those lines uncoded and match them instead.
Where do I get the precoded template?
Xero Central’s article on importing a precoded bank statement in CSV format links to the template. Keep its headings as they are so the column mapping is straightforward.
Ready to convert your bank statement?
Free to preview. No bank login. Results in about a minute.
Convert a statement