Xero: import invoices with multiple lines
Xero’s own help center states the rule for a multi-line invoice in one sentence: “If a single invoice contains multiple lines, use the same invoice number for each row to tell Xero that they belong to the same invoice.” The same article names only two columns as required at all: “The only required columns are ContactName and InvoiceNumber.” Everything else on this page is what happens around that one repeated number.
Built for bookkeepers, accountants and small-business owners preparing a bank, invoice or journal file for Xero or QuickBooks Online.
Read from Xero Central, Xero’s own support siteImport customer invoices — central.xero.com — read 15 September 2026
What this error means
A multi-line Xero invoice is written as one row per line item, and Xero has exactly one way of knowing which rows belong to the same invoice: the InvoiceNumber column repeated, identically, on every one of those rows. Get that number wrong — leave it blank on a continuation row, or repeat it under a second, different customer — and Xero either rejects the file or, worse, imports it exactly as written.
What causes it, and what our engine actually checks
Accounting Import Check runs three checks around that one repeated number, and they are not the same finding wearing different names. documentFieldNotRepeated is a blocker for a header value — ContactName, InvoiceDate or DueDate — left blank on a continuation row that shares its InvoiceNumber with the row above, and it is the one finding this tool offers to fix automatically: filling the document’s own value down its own rows adds no information the file didn't already carry. documentFieldConflict is a blocker for the same header value disagreeing across an invoice’s rows — a different contact name on two lines of the same InvoiceNumber — and it is never offered a fix, because there is no way to tell which value is right from the file alone; get this one wrong and Xero can silently create a second, duplicate contact. documentRowsSplit is a warning, not a blocker, for an invoice number that reappears somewhere else in the file instead of on the very next row, which some importers read as two separate invoices. One honesty note: this engine’s own mapping also expects ContactName, InvoiceDate and DueDate to repeat on every continuation row, which is a stricter check than Xero’s own article states — Xero’s instructions only require the InvoiceNumber to repeat. That extra requirement is recorded rather than narrowed, because there is no vendor sentence either confirming or contradicting it.
What the engine found in a sample file
Row 2’s ContactName cell was left blank on a continuation row of invoice INV-1, flagged as documentFieldNotRepeated and rated a blocker — the one finding here offered a one-click fix, filling in the value the row above it already carried. In a second sample file, rows 1 and 2 carried the same InvoiceNumber under two different contact names, “ACME Ltd” and “Acme Holdings”, flagged as documentFieldConflict — a blocker with no fix offered, because only you know which name is right. In a third sample file, rows 1 and 3 carried invoice INV-1’s two lines with a different invoice, INV-2, sitting between them, flagged as documentRowsSplit, a warning rather than a blocker. A fourth sample file with the heading “Contact Name” instead of “ContactName” — a heading with a space Xero does not recognise — was flagged as headingNotExact, a notice.
documentFieldNotRepeatedBlocker2documentFieldConflictBlocker1 and 2“ACME Ltd”
documentRowsSplitWarning1 and 3headingNotExactNotice“Contact Name” → “ContactName”
Blocker stops the import outright. Warning usually gets through but is worth checking before you trust the numbers. Notice is informational — safe to leave, safe to clear.
Reproduced from a sample file — read September 15, 2026.
Check your own file for this
Drop the file you were about to import below. It is read in this browser tab, the same engine runs the same check, and you will see immediately whether this exact problem is in it.
CSV, TSV or Excel, up to 20 MB
How to fix it by hand
Open the file in a spreadsheet program and check that every row sharing one invoice carries the exact same InvoiceNumber, with no stray space or extra character. Fill ContactName, InvoiceDate and DueDate down every continuation row of that invoice by hand, or let the tool below do it — it only ever copies a value the invoice’s own first row already carried. Where two rows under one InvoiceNumber name two different contacts, stop and check your source records rather than guessing; picking the wrong one creates a duplicate customer in Xero silently. Keep every column heading exactly as Xero’s own template spells it — “Don’t delete any columns or change any column headings, as these are needed for the file to import” is Xero’s own instruction, and a renamed heading reads to Xero as a missing column, not a renamed one.
Frequently asked questions
- How do I tell Xero that several rows are one invoice?
- Xero’s own help center states it directly: “If a single invoice contains multiple lines, use the same invoice number for each row to tell Xero that they belong to the same invoice.” Nothing else in the file groups the rows — not the contact name, not the date, only the repeated InvoiceNumber.
- What happens if two rows of the same invoice have different contact names?
- Xero’s own article doesn't cover this case, and it is the one this tool treats most carefully: rather than guessing which name is right, Accounting Import Check flags it as documentFieldConflict and offers no automatic fix, because importing the wrong one can silently create a second, duplicate contact record in Xero.
- Why does a heading like “Contact Name” cause a problem?
- Xero’s own instructions are explicit: “Don’t delete any columns or change any column headings, as these are needed for the file to import.” A heading with an extra space or a different spelling isn't a renamed column to Xero’s importer, it’s a missing one — the required field reads as empty on every row, even though the data is right there.
- Is there a limit on how many invoice lines I can import at once?
- Xero’s own recommendation: “We recommend importing no more than 500 items in a single file.” It’s framed as advice rather than a hard rule, but Accounting Import Check checks your file against that same number and tells you before you find out the slow way.
What Accounting Import Check does with this file
Accounting Import Check groups your file’s rows by InvoiceNumber the same way Xero will, checks that ContactName, InvoiceDate and DueDate agree across every row of one invoice, and lists a blank continuation cell, a conflicting one, a split invoice and a misspelled heading before you import — offering a one-click fix only where filling in a value carries no risk of guessing wrong.
The file you'd check is read in your browser tab — it is never uploaded anywhere.
What it cannot do here
The tool fills a blank continuation cell down from the row above; it never resolves two rows of the same invoice that disagree, because that is a fact about your customer, not a fact the file settles. It also does not connect to Xero to check whether an InvoiceNumber already exists there — a number that is unique in your file can still collide with one already imported.
Related import errors
- QuickBooks: "no formulas, charts, or blank rows" and #REF!, #NAME?, #N/A or #VALUE! errors
- QuickBooks: "Your file does not contain the three required columns"
- Xero: "A column in the CSV file has data in the wrong format"
- QuickBooks: “The uploaded file contains invalid transaction amount information”
- Xero manual journal import: debit and credit must balance