How to Categorise Transactions in Xero
The Reconcile screen, bank rules, cash coding, UK VAT codes, and the volume threshold at which manual coding stops paying its rent.
Quick answer
In Xero, go to Accounting » Bank Accounts and click Reconcile beside the bank account with unmatched lines. For each bank line: choose the contact, pick the account from your chart of accounts, set the VAT (Tax Rate) code, and click OK. Use Match when Xero finds an existing invoice or bill, Create for a new transaction. Cash Coding (a separate tab) lets you code many lines at once in a grid for high-volume accounts. Bank Rules (under Bank Account » Manage Account » Bank Rules) automate recurring transactions. CodeIQ connects to Xero via OAuth, learns from your general ledger history, codes transactions through an eight-phase pipeline (transfer detection, invoice matching, historical and universal pattern matching, MCC, semantic, user learning, VAT), and posts coded results back as draft transactions for review.
Why Xero categorisation has its own rhythm
Xero approaches transaction categorisation differently from QuickBooks. There is no “For Review” staging tab. Instead, every bank line lives directly on the bank account’s Reconcile screen until you process it. The mental model is reconciliation-led: you confirm what each bank movement was, in the same step as you record it.
For UK practices the difference is more than cosmetic. Xero’s VAT engine assumes you choose a Tax Rate per line, the chart of accounts uses three- or four-digit codes inherited from the platform’s UK conversion presets, and bank rules can set five or six fields in a single rule. Get the mental model right and Xero is faster than QuickBooks at the median transaction. Get it wrong and you end up scrolling endless suggestions.
The Reconcile screen: the heart of the workflow
Where everything happens
Open Xero. Go to Accounting » Bank Accounts (or Business » Bank Accounts on some plans). Click Reconcile beside the relevant bank account. The Reconcile screen shows two columns side by side:
- Left column: the bank line as it came in from the feed (or as it was imported from a CSV / OFX). Date, description, reference, amount.
- Right column: Xero’s suggestion. Either a matching existing transaction (Match), or a fresh entry to be created (Create), or a bank rule firing (Apply rule), or a transfer detected.
For each row, click OK to accept the suggestion, or click into the right column to override before reconciling. Keyboard shortcut: O to confirm the highlighted row.
What “doing it properly” looks like per line
Read the bank reference, particulars, and code fields
UK bank feeds populate up to four free-text fields: narrative (Xero calls it description), reference, particulars, and code. Most of the meaningful merchant identification is in the description; reference often has invoice numbers or BACS detail.
Choose the contact
Pick from existing contacts or type a new one. Xero auto-creates contacts from typed names, which is convenient but creates duplicates if you type “British Gas” one month and “BRITISH GAS BUSINESS LTD” the next. Maintain a clean contact list.
Pick the account from the chart of accounts
Type the first few characters of the account name or code. UK Xero charts conventionally use codes 200-299 for sales, 300-499 for direct costs, 400-499 for overheads, 500s for expenses. Get used to typing the code rather than scrolling.
Set the Tax Rate (VAT code)
Xero defaults the Tax Rate based on the account selected, but always check. The wrong code flows straight to the MTD VAT return. Detail in the VAT codes section below.
Apply tracking categories where used
If you track departments, sites, or projects, choose them at the line level. Tracking is optional but it unlocks segmented P&L reports.
Match vs Create: the decision that catches people out
Xero’s suggestion engine often presents both a Match tab and a Create tab side by side. Knowing which to use is the single biggest source of double-counting in Xero.
Use Match when
- An invoice or bill already exists in Xero for this bank line
- A spend money or receive money transaction has been entered manually
- Xero proposes a single matching record with the right amount
- You see the green “Find & Match” with a date close to the bank date
Use Create when
- The bank line has no matching record in Xero yet
- You are coding direct expenses (bank charges, card payments without invoices)
- You are recording a refund, transfer, or owner’s drawing
- The matching record is for a different amount (use Adjustment then)
The double-counting trap
If a bill is already entered against a supplier and you click Create instead of Match, the bank line posts a fresh transaction and the original bill stays open. Now the supplier statement balance is wrong and the P&L is overstated. Always check the Match tab first when reconciling supplier or customer payments.
UK VAT codes in Xero: getting MTD right
Xero ships with a tightly-defined set of UK VAT (Tax Rate) codes. The naming convention separates inputs (purchases) from outputs (sales) and signals the rate. Choose the right code per line: the MTD VAT return reads these directly into Boxes 1 to 9.
| Code | What it covers | VAT return effect |
|---|---|---|
| NO VAT | Outside the scope of VAT (wages, dividends, MOT fees, statutory fines, internal transfers) | Excluded from VAT return |
| 20% VAT on Income | Standard-rated UK sales (most goods and services to UK customers) | Box 1 (output VAT), Box 6 (net sales) |
| 20% VAT on Expenses | Standard-rated UK purchases (office supplies, software, professional services) | Box 4 (input VAT), Box 7 (net purchases) |
| 5% VAT on Income | Reduced-rate sales (energy-saving materials, women’s sanitary, children’s car seats) | Box 1 (output VAT), Box 6 (net) |
| Zero Rated Income | Books, children’s clothes, most food, public transport sales | Box 6 only (no VAT) |
| Zero Rated Expenses | Zero-rated purchases (books, food, public transport tickets) | Box 7 only |
| Exempt Income | Insurance, postage stamps, education, finance services | Box 6 only |
| Exempt Expenses | Exempt purchases (insurance premiums, bank fees if exempt) | Box 7 only |
| Reverse Charge Expenses (20%) | EU/overseas services and digital products under reverse charge | Boxes 1, 4, 6, 7 |
| Domestic Reverse Charge | CIS supplies, mobile phones, computer chips under domestic RC | Boxes 1, 4, 6, 7 |
NO VAT vs Exempt Expenses: the trap
These behave very differently. NO VAT means the transaction is outside the VAT system entirely (wages, dividends). It does not appear on the VAT return at all. EXEMPT EXPENSES means the transaction is in the VAT system but exempt (insurance, bank charges in some cases). It appears in Box 7 (net purchases) of the VAT return. Use the wrong one and Box 7 is misstated, which HMRC may notice on a partial-exemption review.
Bank rules: more flexible than people realise
How Xero bank rules work
Go to Accounting » Bank Accounts, click Manage Account » Bank Rules for the relevant bank. Click Create rule. A Xero bank rule has three parts:
- Conditions: what triggers the rule. Match on text in any combination of the bank fields (narrative, reference, particulars, code), the transaction type (spend or receive), and the amount range.
- Set the contact: Xero uses or creates a contact. Pick from existing or specify a new one.
- Allocations: the chart of accounts code, VAT rate, tracking categories, and item code. You can split into multiple lines (for example, a rent payment with VAT split, or a payroll batch broken into wages and PAYE).
Rules can also be set to auto-reconcile (apply without manual confirmation) or as suggestions only.
Where Xero rules excel
- Recurring direct debits with consistent reference
- Subscription services (Adobe, Slack, Microsoft 365)
- Card payments through Stripe / GoCardless / Card Saver where the description is templated
- Salary or director drawings with fixed amounts
- Multi-line rules: rent + service charge split automatically
Where they fall apart
- Card-present purchases where the merchant string varies by terminal
- Amazon: every purchase shows as “AMZN MKTP” regardless of what was bought
- One-off vendors
- Same merchant, different account (Costco for office supplies vs catering for a client event)
- Anything that needs partial-VAT or split-by-percentage logic the rule engine cannot express
Order matters
Xero evaluates rules in the order shown on the Bank Rules screen. The first rule that matches a bank line wins. Drag rules to reorder. Put more specific rules above broader ones (e.g. “Tesco fuel” above “Tesco general groceries”), or the broader rule will fire first and miscategorise.
Cash coding: the spreadsheet view for bulk entry
Cash Coding is Xero’s power-user view, accessed via the Cash Coding tab on the bank reconciliation screen. Instead of one bank line at a time, you see them all in a grid: date, description, who, what, why, tax rate, amount.
When to use cash coding
- Director credit cards or expense cards where most lines need a fresh transaction (no invoices to match)
- High-volume accounts where you trust the bank-statement detail
- Backlog reconciliation: catching up several months in one sitting
- When you have already triaged with bank rules and want to fly through the rest
Cash Coding skips the Match suggestion engine. If the account has invoices that need matching, use Reconcile instead.
Chart of accounts: defaults vs customisation
Xero ships a default UK chart of accounts on company setup, structured around the standard FRS 102 small-company classification. The default is comprehensive enough for most service businesses to start with, but it almost always needs trimming and tailoring.
What to add and what to remove
- Remove unused accounts. Default Xero ships dozens of accounts most businesses never touch. Mark them inactive (settings on each account) so they do not clutter the dropdown.
- Add industry-specific accounts. A construction firm needs “CIS Suffered” and “CIS Deducted” control accounts. A landlord needs “Mortgage Interest (S24 restricted)”. A SaaS business needs “Hosting Costs” and “Software Subscriptions”.
- Use account codes consistently. Xero codes are alphanumeric. UK convention: 200-299 sales, 300-399 direct costs, 400-499 expenses, 500-599 finance, 800-899 fixed assets, 900-999 equity. Stick to a numbering scheme so reports group sensibly.
- Set default tax rate per account. On each account, choose the typical Tax Rate (e.g. “20% VAT on Expenses” for Office Supplies). Xero auto-applies this rate when the account is selected on a bank line, saving a click per transaction.
Tracking categories and when to use them
Xero allows up to two tracking category dimensions per organisation. Common uses: department, location, project, fund (for charities). Tracking is optional, but it unlocks segmented P&L reporting that the chart of accounts alone cannot provide. Categorisation discipline matters: if a bank line should be tagged to a project, tag it on entry, not later when the trail has gone cold.
When manual categorisation stops working
Manual reconciliation in Xero is the right approach for low-volume accounts or sole-trader books. The threshold where it starts to fail is around 200 to 300 bank lines per month per client, especially in practices managing 8 to 15 client files.
The signs to watch
- Reconciliation runs into a second day per client
- Bank rules have crept past 100 per organisation and conflict with each other
- VAT classification errors surface during quarterly review, not at the line level
- New staff cannot pick up an organisation cleanly because rules and conventions are tribal knowledge
- Cash coding is being used as a triage tool rather than a power-user tool: you are skimming through lines too fast to think
The pattern-learning approach (CodeIQ)
CodeIQ connects to Xero via OAuth, reads the chart of accounts, VAT codes, contacts, and tracking categories, and then learns from your existing general-ledger history. When you upload a bank statement, CodeIQ runs each transaction through an eight-phase pipeline:
- Transfer detection » finds equal-and-opposite movements between your accounts and posts them as transfers, not as expenses or income
- Invoice matching » pairs payments to outstanding invoices in Xero, automatic write-offs and adjustments where needed
- Historical pattern » how have you coded this merchant before in this Xero org? Apply the same coding
- Universal pattern » crowd-sourced merchant-to-account mappings learned across thousands of UK bookkeeping practices, anonymised
- MCC category » merchant category code (where present) gives a category floor
- Semantic analysis » local embedding model classifies anything still unmatched, comparing transaction meaning to your account names
- User learning » corrections you have made in past sessions get re-applied as overrides
- VAT classification » map to a Xero VAT code (NONE, INPUT2, OUTPUT2, EXEMPTINPUT, etc.) automatically based on the account and pattern
The output is a coded review screen. High-confidence items are ready to post. Low-confidence items are flagged. You scan, correct, and post back to Xero as draft transactions. Same audit trail. Same VAT compliance. A fraction of the manual time.
Try CodeIQ free with your Xero org
OAuth into Xero, upload a bank statement, see how an eight-phase pipeline compares to clicking through the Reconcile screen. Two minutes per client, not two hours.
Try CodeIQ freeFrequently asked questions
How do I categorise transactions in Xero?
Go to Accounting » Bank Accounts and click Reconcile beside the bank account. For each unreconciled bank line, choose the contact, the account from your chart of accounts, the VAT (Tax Rate) code, and any tracking categories, then click OK. Use Match when an existing invoice or bill matches; use Create for new transactions.
What is the difference between Reconcile and Cash Coding in Xero?
Reconcile is the standard one-by-one workflow on the bank dashboard, with Match suggestions for existing invoices. Cash Coding is a bulk grid view (a separate tab) for coding many bank lines at once. Cash Coding is faster for high-volume entry but it skips Match suggestions, so it is best used for cards or accounts where you do not need invoice matching.
Which VAT code should I use in Xero for an exempt purchase?
Use EXEMPTEXPENSES (the “Exempt Expenses” tax rate). Do not use NO VAT, which is for transactions outside the scope of VAT entirely (wages, dividends, statutory fines). Exempt purchases appear in Box 7 of the VAT return; out-of-scope items do not appear at all. The distinction matters under MTD because Xero’s VAT return generates directly from the per-line tax codes.
How many bank rules can I create in Xero?
Xero does not publish a hard cap on bank rules; firms run hundreds per organisation in practice. Rules are evaluated in the order shown on the Bank Rules screen and the first matching rule wins. Xero rules are more flexible than QuickBooks: a single rule can set the contact, account, VAT code, tracking categories, and item code, and conditions can match on bank text fields, transaction direction, or amount range.
Can I automate transaction categorisation in Xero?
Partially through bank rules and more fully through pattern-learning tools. Bank rules in Xero handle recurring transactions with consistent descriptions but they cannot deal with transfers, invoice matching, or VAT classification beyond a fixed code. Tools like CodeIQ connect via OAuth, read the chart of accounts and VAT codes, learn from your general ledger history, and code transactions through an eight-phase pipeline before posting them back as draft transactions for review.