SimpleBankConvertSimpleBankConvert home

Import Invoices into Xero from a CSV Template

By SimpleBankConvertPublished May 14, 2026Updated May 14, 2026

To import invoices into Xero, download the CSV template from Sales, then Invoices, then Import. Fill in one row per invoice line, give every line of the same invoice the same InvoiceNumber, and spell each ContactName exactly as in Xero. Upload the file on the same screen, and the invoices arrive as drafts for you to approve.

Where the Xero invoice CSV template lives

The Xero invoice CSV template sits on the invoice import screen. In Xero, open the Sales menu, choose Invoices, click Import, then click Download template file. Start from that file rather than one of your own, because Xero reads the column headings to know what each value means, and a renamed heading stops the import.

Xero Central's article on importing customer invoices into Xero is the reference for everything in this post. It says not to delete any columns or change any headings in the template. Columns you do not use, such as tracking, foreign currency or inventory, can simply stay empty.

Size of a file

The same article recommends no more than 500 items in a single file. If you are bringing in a year of invoices from another system, split them by month or by quarter. Smaller files are also easier to check: if one is rejected, you only have to search a few dozen rows for the cause.

Sales invoices, not bills

This template is for invoices you send to customers. Bills from suppliers have a separate import with its own template, explained in importing bills into Xero. Putting a supplier bill into the sales template would record it as money a customer owes you.

Which Xero invoice template columns are required?

Only two columns in the Xero invoice template are required: ContactName and InvoiceNumber. Every other column can be left blank and completed in Xero after the import. In practice you will also want dates, a description, a quantity, a unit amount and an account code on each row, or every draft will need editing by hand.

Here is an annotated sample with two made-up invoices from an example cleaning company. The values are examples, and the sample shows a subset of the template's columns. Your downloaded template has more, which can stay empty.

ContactName InvoiceNumber InvoiceDate DueDate Description Quantity UnitAmount AccountCode TaxType
Northside Clinic INV-0231 04/01/2026 04/30/2026 Weekly office clean, April 4 180.00 200 Tax Exempt
Northside Clinic INV-0231 04/01/2026 04/30/2026 Window cleaning 1 95.00 200 Tax Exempt
Elm Street Books INV-0232 04/02/2026 05/02/2026 Deep clean after renovation 1 640.00 200 Tax Exempt

Reading it row by row: the first two rows share INV-0231, so they become one invoice for Northside Clinic with two lines totalling 815.00. The third row is a separate invoice, INV-0232, for 640.00. The account code 200 and the tax type are example values. Yours must be codes and names that exist in your own Xero organization.

Values that must match Xero exactly

The article names AccountCode, TaxType, TrackingName, TrackingOption, Currency and BrandingTheme as columns whose values must match Xero exactly, or the information will not import. Before filling them in, open your chart of accounts and your tax rate settings and copy the codes and names from there.

How the InvoiceNumber column groups line items in Xero

The InvoiceNumber column is what groups rows into invoices. Each row in the file is one invoice line, and every row with the same InvoiceNumber becomes a line on the same invoice. A three-line invoice is three rows with one number. Change the number on a row and Xero starts a new invoice.

That makes the number the most important value in the file. Repeat it exactly on each line, with no extra spaces. If rows of one invoice are scattered through the file, sort by InvoiceNumber before importing, so you can see each invoice's lines together and check the contact and dates are the same on all of them.

Unique numbers only

Xero Central says each invoice in the file must have a unique invoice number, and that an invoice whose number already exists in Xero will not be imported. This protects you from importing the same invoice twice. It also means you cannot use the import to update an invoice that is already in Xero.

Keeping your numbering sequence

To carry on your existing numbering, enter invoice numbers in the same format Xero already uses, such as INV-0001, according to the same article. If you are moving from another system with plain numbers like 1041, decide before the import whether to keep them as they are or add a prefix. Mixing both styles makes the invoice list harder to search.

ContactName spelling and duplicate contacts in an invoice import

ContactName decides which customer each invoice belongs to. If the name in your file matches an existing Xero contact exactly, the invoice joins that contact. If it differs by a letter, a space or "Ltd" versus "Limited", Xero treats it as someone new and creates another contact, which splits that customer's history in two.

The fix is to check names before importing. Export your Xero contacts, or open the list, and copy names from there into the file. For a long customer list, it is faster to bring contacts in first and then refer to them; importing contacts into Xero covers that template.

Updating addresses at the same time

The invoice template also has EmailAddress and POAddress columns. Xero Central says you can use them to add or update a customer's address details along with the invoice, and that you confirm this choice when you import. If you only want to update some customers, fill in addresses for those and leave the rest blank; Xero ignores blanks when updating.

Cleaning up a duplicate contact

If a near-duplicate contact was created anyway, open it, check which invoices it holds, and merge it into the correct contact. Do this before sending statements to customers, or one customer may receive two.

Tax, account codes and dates in the Xero invoice file

Tax, account codes and dates are where most rejected Xero invoice files go wrong. Dates must follow the format the template expects, which is MM/DD/YYYY in the US article. Account codes must be codes, not names. TaxType must be the tax rate's display name. And UnitAmount must be either all tax inclusive or all tax exclusive.

Tax inclusive or exclusive

The article says amounts in UnitAmount can include or exclude tax, but a single file cannot mix both. You confirm which one you used during the import. If some of your source invoices show prices with tax and others without, convert them all to one basis in the spreadsheet first.

When you need a specific tax figure rather than Xero's calculation, the US article says to add a TaxAmount column. Xero then adds a tax adjustment for any difference, and the prices must be entered tax exclusive.

Dates by region

The date format depends on the region of your Xero organization. The US article asks for MM/DD/YYYY, while Xero's global version of the invoice import article asks for DD/MM/YYYY. Check the article for your region and stick to one format in every row. A file built in a spreadsheet set to another country's dates is a common way to end up with invoices in the wrong month.

Discounts, inventory and currency

A few columns behave in specific ways. Discount takes a percentage of up to two decimal places, without the % sign. InventoryItemCode creates a new inventory item if the code does not already exist, so a typo makes an unwanted item. Currency takes the three-letter code, such as EUR, and that currency has to be added in Xero's settings first.

Running the Xero invoice import and approving the drafts

To run the Xero invoice import, go to Sales, then Invoices, then Import, browse to your saved CSV, choose whether to update contact addresses, choose tax exclusive or tax inclusive, and click Import. Xero shows a message listing any errors. Fix and re-import, or click Complete Import. The invoices then wait as drafts.

Step by step, following Xero Central:

  1. In the Sales menu, select Invoices.
  2. Click Import.
  3. Click Browse and select your saved CSV file.
  4. Choose whether to update contacts' address details.
  5. Choose whether the UnitAmount prices are tax exclusive or tax inclusive.
  6. Click Import.
  7. Read the import message. If it lists errors, click Go Back, fix the file and import again. Otherwise click Complete Import.

Approving the drafts

Imported invoices are drafts. Nothing has been sent to a customer and nothing shows as owed until you approve them. Open the drafts, spot-check a few against the source documents, especially those with several lines, then approve them. If any invoices are dated before you started using Xero, the global version of Xero's invoice import guide says to update your conversion balances after approving.

When the import message shows errors

The error message names the rows at fault. The usual causes are a heading that was changed, a date in the wrong format, an account code that does not exist, or a tax type spelled differently from Xero's settings. Fix those rows in the file and import it again. If you completed an earlier import and are re-importing only the failed invoices, remove the rows that already went in, since their numbers now exist in Xero.

Can an invoice import record payments or fix past mistakes?

An invoice import cannot record payments, and it cannot update invoices already in Xero. The template has no payment columns, and an invoice number that already exists is skipped. Payments are recorded on the invoices after approval, or by matching bank lines during reconciliation. Corrections to existing invoices are made on the invoice itself.

Payments after the import

Once the invoices are approved, the customer payments that settle them come through the bank account. Matching each payment to the right invoice is covered in importing payments into Xero against invoices. The bank lines have to be in Xero first. If your bank only gives you PDF statements, SimpleBankConvert is being built to turn a PDF into a CSV laid out for Xero's statement import, with payee and reference in their own columns.

Backing out a bad batch

If a whole batch went in wrong, delete the drafts before approving them and import a corrected file. Drafts have not touched your reports yet, so this is clean. QuickBooks users have a similar safety net for a wrong bank file, described in undoing a bank upload in QuickBooks Online, but in Xero the draft stage is your chance, so check before you approve.

All posts in Invoices, bills and lists