
Loading...
A Xero precoded CSV is a bank statement CSV with three extra columns: AccountCode, TaxType, and ContactName. When Xero imports the file, it uses those values to pre-populate the account, tax rate, and contact for each transaction, which means you skip most of the usual bank reconciliation step.
The format is supported in the standard bank statement import flow. The challenge is not the CSV itself. It is filling in AccountCode values that exactly match your chart of accounts and TaxType values that exactly match your tax rates.
Fast answer:add AccountCode, TaxType, and ContactName columns to a standard Xero bank CSV. Make sure each value matches your organization exactly, and keep every row consistent with your Xero region's date format.
If you handle recurring transactions of the same type (subscriptions, supplier invoices, payouts), a precoded CSV is the fastest way to get them into Xero with a category already applied. This guide walks through every column Xero accepts, how the values should look, and how to build the file without hand-coding every row.
The standard Xero bank statement CSV accepts the first five columns. The precoded version adds the last three.
| Column | Required? | Example | Notes |
|---|---|---|---|
| Date | Yes | 15/03/2026 | Must match your Xero region (DD/MM/YYYY for UK/AU, MM/DD/YYYY for US). |
| Amount | Yes | -64.99 | Positive for money in, negative for money out. Plain number, no currency symbol. |
| Payee | Optional | Adobe | Free text. Shown in the reconciliation view. |
| Description | Optional | Creative Cloud monthly | Free text. Use it for the memo or line item detail. |
| Reference | Optional | SUB-2251 | Useful for matching to invoices or check numbers. |
| AccountCode | Precoded only | 420 | Must exist in your chart of accounts. Wrong codes fail silently. |
| TaxType | Precoded only | Tax on Purchases | Region-specific. Copy the exact string from your Xero tax rates page. |
| ContactName | Precoded only | Adobe Inc | Matches to an existing Xero contact if the name is identical. |
Here is what a precoded CSV looks like for a US organization using DD/MM/YYYY dates. The first row is the header, and every row below includes the three precoding columns filled in.
| Date | Amount | Payee | Description | Reference | AccountCode | TaxType | ContactName |
|---|---|---|---|---|---|---|---|
| 15/03/2026 | 1842.19 | Stripe | Platform payout | PAYOUT-1043 | 200 | Tax on Sales | Stripe |
| 16/03/2026 | -64.99 | Adobe | Creative Cloud | SUB-2251 | 420 | Tax on Purchases | Adobe Inc |
| 17/03/2026 | -118.34 | UPS | Shipping labels | SHIP-8204 | 425 | Tax on Purchases | UPS Store |
Account codes (200, 420, 425) are illustrative. Yours will differ based on how your chart of accounts is set up.
AccountCode, TaxType, and ContactName all have to match exactly. "Exact" is stricter than you might expect:
Hand-coding a full month of transactions is slow and error-prone. The approach that holds up at scale:
The Xero CSV converter accepts any bank export, lets you map AccountCode, TaxType, and ContactName columns, and emits a clean precoded file. Use the Bulk Categorizer first to assign the category bucket, then map each bucket to your chart of accounts.
Precoding pays off when the same accounts show up on every statement. Examples where it saves the most time:
It pays off less when the transactions are one-offs with no pattern. In those cases, a standard bank statement CSV plus manual reconciliation is usually faster than trying to precode each row.
A Xero precoded CSV is a bank statement CSV that includes the AccountCode, TaxType, and ContactName columns in addition to the standard Date, Amount, Payee, Description, and Reference fields. Xero uses those extra columns to pre-populate the account, tax rate, and contact for each imported transaction, which skips most of the bank reconciliation workflow.
At minimum: Date and Amount. Typical precoded files also include Payee, Description, Reference, AccountCode, TaxType, and ContactName. AccountCode, TaxType, and ContactName are the three columns that make the file 'precoded'. Without them, Xero treats the file as a standard bank statement CSV.
Yes, exactly. If your Xero chart of accounts has code 400 for Sales and you write 401, Xero rejects that row or leaves it unmatched. Every value in AccountCode has to exist in the organization you are importing into.
Xero's TaxType values are region-specific. US organizations use values like 'Tax on Purchases' and 'Tax Exempt', while AU uses 'GST on Expenses' and 'GST on Income', and UK uses 'Reverse Charge Expenses' and similar. Check your own organization's tax rates page for the exact strings.
Partially. A bulk categorizer can group each transaction by a general category or Schedule C bucket, which cuts the work dramatically. You still map each bucket to your specific AccountCode once (for example, 'Software' to 420), then reuse that mapping every month.