Xero bills CSV import template: required columns, dates and tax types
A Xero bills CSV needs one row per bill line, with the columns marked by an asterisk filled in: contact name, invoice number, invoice date, due date, description, quantity, unit amount, account code and tax type. Dates must match your organisation's date format, and the tax type must be the exact name of a tax rate in your organisation. Always start from the template on Xero's import page.
General information for bookkeepers, not accounting, tax or legal advice. Rules and software screens differ by country and change over time.
This guide reflects general knowledge of Xero's bill import template. Xero changes its screens and its template, and the import can differ by region, so compare every point with the template you download.
The columns Xero marks as required
As of general knowledge, nine columns carry an asterisk in the template. The rest, such as contact address and tracking, can stay empty.
| Column | What to enter | Common mistake |
|---|---|---|
*ContactName | The supplier, spelled exactly as in your Xero contacts. | A near-match creates a second contact. |
*InvoiceNumber | The supplier's invoice number, identical on every row of the bill. | Blank on later rows, which splits one bill into several. |
*InvoiceDate | The invoice date, in your organisation's date format. | Day and month swapped. |
*DueDate | The printed due date, or the invoice date plus the terms. | Blank, or earlier than the invoice date. |
*Description | The line description. | Left empty on a freight or tax line. |
*Quantity | A number. Use 1 when the invoice prints only an amount. | Text such as 2 boxes. |
*UnitAmount | The price of one unit. Quantity × unit amount becomes the line total. | Entering the line total when the quantity is not 1. |
*AccountCode | A code from your chart of accounts, not the account name. | A spreadsheet strips leading zeros, or the account is archived. |
*TaxType | The exact name of a tax rate in your organisation. | A typo, different capitals or a trailing space. |
Preparing the file
-
Download Xero's current template
Open the bill import in your organisation (as of general knowledge, from the Bills area) and download its template. Keep the header row exactly as it is, asterisks included.
-
Fill one row per bill line
A five-line bill needs five rows. Repeat the contact, invoice number and dates identically on every row, because Xero groups rows by invoice number.
-
Copy names and codes, do not retype them
Take contact names from your contact list, account codes from your chart of accounts and tax names from your tax rates. Typing from memory is where most rejections start.
-
Set the dates
Use your organisation's date format with four-digit years throughout, and make each due date the same as or later than its invoice date.
-
Save as CSV and import
Save as CSV UTF-8, comma separated. Xero typically brings imported bills in for review before you approve them.
-
Check two or three bills
Open them and compare each total with the paper before you import the rest.
Dates, tax types and tax-inclusive amounts
- Dates. As of general knowledge, Xero reads dates in the format set in your organisation's regional settings. UK, Australian and New Zealand organisations typically use DD/MM/YYYY, US ones MM/DD/YYYY. Import one bill first, because 03/04/2026 is valid in both formats and a swap raises no error.
- Tax types. A tax type is the name of a rate as your organisation set it up, whether VAT, GST or sales tax. Names differ by country and can be edited, so copy them from your tax rates screen.
- Inclusive or exclusive. Check whether imported amounts are treated as tax exclusive or inclusive by importing one bill and comparing the tax and total. See sales tax and VAT on supplier invoices.
What goes wrong
A second contact appears
Xero matches contacts by name. A spelling or punctuation difference can create a duplicate supplier and split your payables.
The import refuses an invoice number
A number already used for that contact can be refused, including numbers from an earlier import. Search your existing bills for the number first.
Codes lose their zeros
A spreadsheet turns 0200 into 200. Format the account code column as text before you type.
Line totals drift
Xero works out each line as quantity × unit amount. A printed line total that is not an exact product, such as one built on a rounded unit price, can come out a cent or more off. Check line totals on screen after the first import.
Dates look right and are wrong
03/04/2026 imports cleanly in either format, so the bill lands in March or April without a warning. Open one imported bill and read its dates.
Too much in one file
Xero limits how large one import can be; a figure around 500 lines has been quoted. Confirm the current limit, and keep every line of a bill in the same file.
How BillToCSV helps
BillToCSV writes a Xero bills CSV from a supplier invoice PDF or photo, one row per line, with the headers in the layout of Xero's template and each line, the subtotal and the total checked first. *AccountCode and *TaxType are blank unless you type a value once for the whole batch, and dates follow the format you choose. See the Xero converter, the blank templates and pricing. Free: 1 file per day, up to 10 pages, no account.
Questions people ask
What columns are required in a Xero bills CSV?
As of general knowledge, the nine marked with an asterisk: contact name, invoice number, invoice date, due date, description, quantity, unit amount, account code and tax type. Download the template from your own import page to see the current set.
What date format does a Xero import expect?
The format your organisation uses in its regional settings, so the file must match it. Use four-digit years and one format throughout, and test one bill, since a day-month swap can import without any error.
Where do I find the tax type names?
In your organisation's tax rates settings. Copy the name exactly, including capitals and brackets, because a near-match is rejected. Rates and their names differ by country.
Do account codes or account names go in the file?
Codes. The account code column wants the code from your chart of accounts, and the account must exist and be active. Format the column as text so codes with leading zeros survive.
How does Xero decide which rows belong to one bill?
By the invoice number for the same contact. Every row of a bill needs the same contact and invoice number, and the dates should match too. A blank number on a later row starts a new bill.
Can I import credit notes with the same template?
Do not assume so. As of general knowledge, credit notes are a separate document type, and negative lines on a bill may not behave as you expect. Test with one and check Xero's help for the current rules.