
Article Summary
Step-by-step guide to importing invoices into Xero via CSV. Covers sales invoices, purchase bills, CSV fields, platform migration, and common import errors.
To import invoices into Xero, format a CSV file with ContactName, InvoiceNumber, InvoiceDate, DueDate, and Total columns. Go to Business > Invoices > Import, upload the file, and map your fields. Xero accepts CSV imports for both sales invoices and purchase bills.
This guide walks through every step of the Xero invoice import process:
- Four import methods compared: native CSV upload, Conversion Toolbox, Hubdoc, and third-party extraction tools, so you can pick the right one for your workflow
- CSV template field requirements for both sales invoices and purchase bills, with every required and optional column explained
- Step-by-step import procedures for each invoice type
- Migration paths from QuickBooks, Sage, and FreshBooks into Xero
- Converting PDF invoices into Xero-ready CSV files, solving the upstream formatting problem most guides skip
- Common import errors and fixes, from date format mismatches to duplicate invoice numbers
The right approach depends on your situation, whether you are migrating historical data from another platform, processing a backlog of PDF invoices, or setting up an ongoing import workflow.
Four Methods for Importing Invoices into Xero
Before you start formatting spreadsheets, it is worth understanding all the routes available for getting invoice data into Xero. Each method serves a different scenario, and picking the wrong one can mean unnecessary rework.
| Method | Best For | Invoice Types | Format |
|---|---|---|---|
| Native CSV Import | Batch importing historical or ongoing invoices | Sales invoices and purchase bills | CSV file |
| Conversion Toolbox | Full accounting system migrations | Sales invoices, purchase bills, contacts, chart of accounts | Xero migration format |
| Hubdoc | Ongoing capture of received invoices and bills | Sales invoices and purchase bills | PDF, email, photo |
| Third-party extraction tools | Converting PDF or paper invoices into structured CSV files for import | Sales invoices and purchase bills | CSV/Excel output |
Native CSV Import is the most flexible and widely used method for getting invoice data into Xero. Whether you need to bulk import invoices into Xero from a legacy system export, load a batch of historical records, or set up a repeatable import workflow for ongoing operations, CSV import gives you direct control over field mapping and data formatting. Third-party extraction tools produce output for this pathway, while Conversion Toolbox and Hubdoc use their own import mechanisms.
Conversion Toolbox is specifically designed for one-time migrations from platforms like QuickBooks, Sage, or FreshBooks. It handles not just invoices but also contacts, chart of accounts, and other accounting data in a single structured migration. If you are moving an entire practice or client file from one platform to Xero, this is the purpose-built route.
Hubdoc is a Xero-owned tool included with most Xero subscriptions. It handles ongoing document capture by automatically reading invoices and receipts from PDFs, emails, or photos, then creating draft transaction entries in Xero. For practices that receive a steady flow of supplier bills and need hands-off data entry, Hubdoc reduces manual keying on a per-document basis.
Third-party extraction tools solve the upstream problem: your invoices arrive as PDFs or scanned documents rather than structured data. These tools use OCR and AI to extract line items, totals, tax amounts, and vendor details from unstructured documents, then output Xero-compatible CSV or Excel files ready for import. This is particularly relevant given how many businesses still operate with paper or PDF-based invoicing workflows.
That last point matters more than you might expect. Xero's Accounting and Bookkeeping Industry Report found that only 49% of small businesses use accounting software, just 59% of bookkeeping services are cloud-based, and only 40% of clients benefit from connected bank feeds. Many businesses are still transitioning to cloud accounting, which makes data import a common and critical task rather than a one-off event.
For practitioners managing multiple clients, understanding all four methods is essential. One client may need a full QuickBooks migration via Conversion Toolbox, another may send boxes of paper invoices requiring third-party extraction, and a third may just need a clean CSV upload of last quarter's sales invoices. Familiarity with invoice processing for accounting professionals across these different scenarios means you can match the right tool to each client's situation without delays.
A few important limitations to note: Xero's CSV import does not support credit notes, repeating invoices, or direct Excel file uploads (you must save as .csv first). It also does not import payment records, so any invoices imported as "paid" still need manual payment allocation in Xero after the fact.
Xero CSV Invoice Template: Required and Optional Fields
Xero uses separate CSV templates for sales invoices and purchase bills. The column names, required fields, and expected values differ between the two, so using the wrong template will cause your import to fail. Here is a field-by-field breakdown of both.
Sales Invoice CSV Fields
| Field Name | Required/Optional | Notes |
|---|---|---|
| ContactName | Required | Must match an existing Xero contact exactly. If no match is found, Xero creates a new contact automatically. |
| EmailAddress | Optional | Contact email address. Useful if you plan to send invoices directly from Xero after import. |
| InvoiceNumber | Required | Unique identifier for each invoice. Xero rejects any row with a duplicate invoice number already in the system. |
| Reference | Optional | PO number or external reference for cross-referencing with other systems. |
| InvoiceDate | Required | Format must match your Xero organization date settings: DD/MM/YYYY for UK, AU, and NZ organizations; MM/DD/YYYY for US organizations. |
| DueDate | Required | Must be on or after the InvoiceDate. Xero will reject rows where the due date precedes the invoice date. |
| Description | Required | Line item description. Each line item on an invoice gets its own row in the CSV. |
| Quantity | Required for line items | Number of units. Defaults to 1 if left blank. |
| UnitAmount | Required for line items | Price per unit excluding tax. Use decimal points only, no currency symbols. |
| AccountCode | Required | Must exactly match an existing account code in your Xero chart of accounts (e.g., 200 for Sales). |
| TaxType | Required | Must exactly match a tax rate name configured in Xero. For example, "20% (VAT on Income)" for UK sales or "Tax on Sales" for US organizations. |
| Discount | Optional | Percentage discount applied to the line item. Enter as a number (e.g., 10 for 10%). |
| Currency | Optional | Three-letter ISO currency code (e.g., USD, GBP, EUR). Only needed for multi-currency invoices. |
Purchase Bill CSV Fields
Xero's purchase bill CSV template shares a similar structure but uses different field names and mappings in several places.
| Field Name | Required/Optional | Notes |
|---|---|---|
| ContactName | Required | Refers to the supplier name. Must match an existing contact in Xero or a new contact is created. |
| InvoiceNumber | Required | The supplier's invoice number. Must be unique per supplier within Xero. |
| Reference | Optional | Your internal PO number or reference for the purchase. |
| InvoiceDate | Required | Date on the supplier's invoice. Same date format rules apply as sales invoices. |
| DueDate | Required | Payment due date. Must be on or after InvoiceDate. |
| Description | Required | Line item description for the purchased goods or services. |
| Quantity | Required for line items | Defaults to 1 if omitted. |
| UnitAmount | Required for line items | Cost per unit excluding tax. Decimal points only, no currency symbols. |
| AccountCode | Required | Maps to expense or asset accounts in your chart of accounts (e.g., 400 for Advertising, 710 for Office Equipment) rather than revenue accounts. |
| TaxType | Required | Maps to purchase tax rates rather than sales tax rates. For example, "20% (VAT on Expenses)" for UK or "Tax on Purchases" for US. |
| InventoryItemCode | Optional | References an inventory item for stock tracking. Must match an existing item code in Xero's inventory. |
| Discount | Optional | Percentage discount on the line item. |
| Currency | Optional | Three-letter ISO code, required only for multi-currency bills. |
Note that there is no EmailAddress field for purchase bills, and the InventoryItemCode field is available for bills but not for sales invoices.
Critical Data Formatting Rules
Date format must match your organization's Xero settings. Check this under Settings > General Settings > Date Format. A DD/MM/YYYY date imported into a US-format organization will either fail or be misinterpreted.
Amounts use decimal points as the decimal separator, not commas. Do not include currency symbols ($, £, €). Enter 1250.50, not $1,250.50.
Multi-line invoices are handled by repeating the same InvoiceNumber across multiple rows. Each row represents one line item. Xero groups all rows sharing the same InvoiceNumber into a single invoice or bill. The header fields (ContactName, InvoiceDate, DueDate) should be identical across all rows for that invoice.
AccountCode and TaxType values must be exact matches to what exists in your Xero organization. A code of "201" when your chart of accounts uses "200" will cause that row to fail. Similarly, a TaxType of "VAT 20%" will be rejected if Xero expects "20% (VAT on Income)". Copy these values directly from your Xero settings to avoid mismatches.
Xero provides downloadable CSV templates directly from the import screen. Starting from these templates is the safest way to ensure your file structure and column headers are correct before you populate your data.
How to Import Sales Invoices into Xero
Before starting, confirm that your CSV file follows Xero's sales invoice template requirements. Column headers must match Xero's expected field names exactly, AccountCode values must correspond to accounts in your chart of accounts, TaxType entries must use Xero's recognized tax rate names, and dates must be formatted consistently (DD/MM/YYYY or MM/DD/YYYY depending on your Xero organization's region settings).
With your file prepared, follow these steps to import sales invoices into Xero:
-
Log into Xero and navigate to Business > Invoices. This opens your sales invoices list, where you can view all existing draft, awaiting payment, and paid invoices.
-
Click the Import button in the top-right area of the invoices screen. Xero opens the import dialog.
-
Select your CSV file from your computer. Xero accepts .csv files only, so if you prepared your data in Excel, export it as CSV before uploading.
-
Review the column mapping screen. Xero displays a mapping interface showing how each column in your CSV maps to a Xero invoice field. If your column headers match Xero's defaults (ContactName, InvoiceNumber, InvoiceDate, DueDate, Description, Quantity, UnitAmount, AccountCode, TaxType), the mapping happens automatically. If your headers differ, use the dropdown menus to manually assign each column to the correct Xero field.
-
Check the validation preview. After mapping, Xero runs validation against your data and shows a preview of the invoices that will be created. Red highlights indicate problems: mismatched account codes, unrecognized tax types, missing required fields, or date formatting errors. Yellow warnings flag non-critical issues such as new contact names that Xero will create on import.
-
Fix any errors before proceeding. If the preview shows red-highlighted rows, cancel the import, correct the issues in your CSV file, and re-upload. Attempting to push through with errors results in skipped rows or rejected imports.
-
Confirm the import. Once the preview shows no errors, click Complete Import. Xero processes the file and creates the invoices.
-
Review the imported invoices. All imported invoices appear with Draft status in your Invoices list. Open each invoice (or spot-check a representative sample) to verify that amounts, dates, contact details, and line items are correct. Approve invoices individually or in bulk when you are satisfied with the data.
Tips for Batch Imports
- Start with a small test batch. Import 5 to 10 invoices first rather than your entire file. This catches formatting issues, incorrect account codes, or tax type mismatches before they affect hundreds of records.
- Respect Xero's line limit. Each CSV file can contain a maximum of 500 invoice lines. A single invoice with 3 line items counts as 3 lines toward this limit. For larger imports, split your CSV into multiple files and import them sequentially.
- Watch for duplicate contacts. When a contact name in your CSV does not match an existing Xero contact exactly, Xero creates a new contact record automatically. After importing, navigate to Contacts > All Contacts and search for duplicates. Merge any duplicate entries to keep your contact list clean and ensure accurate reporting.
- Keep your original CSV file. Save the source file until you have verified the import fully. If something goes wrong, having the original makes it straightforward to delete the draft invoices and re-import a corrected version.
How to Import Purchase Bills into Xero
If your accounts payable workflow involves dozens (or hundreds) of supplier invoices each month, importing purchase bills into Xero via CSV eliminates repetitive manual data entry. The process mirrors the sales invoice import, but uses a different navigation path, a separate CSV template, and purchase-specific field values.
Step-by-Step: Import Bills into Xero CSV
The import process follows the same upload-map-validate-confirm flow as sales invoices. The key differences:
-
Navigate to Business > Bills to pay (not Business > Invoices). Select Business in the top menu, then choose Bills to pay from the dropdown.
-
Click Import and select your CSV file. On the mapping screen, pay particular attention to ContactName (supplier, not customer), AccountCode (expense accounts, not revenue), and TaxType (purchase tax rates, not sales). The TaxType column must reference purchase-side rates: "20% (VAT on Expenses)" instead of "20% (VAT on Income)" for a UK organization, for example.
-
Review validation and confirm. Check that supplier names match existing Xero contacts, account codes resolve to valid expense accounts, and tax types correspond to purchase tax rates. All imported bills appear as Draft entries for review before approval and payment.
Key Differences from Sales Invoice Import
Understanding the distinctions between sales invoice and purchase bill imports prevents the most common CSV errors:
- Navigation path: Sales invoices are imported from Business > Invoices. Purchase bills use Business > Bills to pay.
- ContactName column: For sales invoices, this field identifies the customer. For purchase bills, it refers to the supplier or vendor who issued the bill.
- AccountCode column: Sales invoices map to revenue accounts. Purchase bills map to expense accounts or cost-of-goods-sold accounts. Verify that every account code in your CSV exists in your Xero chart of accounts under the correct account type.
- TaxType column: This is the most frequent source of import failures. Purchase bills require purchase-side tax rates. A bill coded with a sales tax rate (such as "Tax on Sales" or "20% (VAT on Income)") will fail validation or be imported with incorrect tax treatment.
- Post-import workflow: Imported bills land in Draft status and must pass through your organization's approval process before they can be marked for payment. Sales invoices, by contrast, can be sent to customers directly from Draft.
Reusable Template Tip for Recurring Suppliers
For businesses that receive invoices from the same set of vendors on a regular basis, build a reusable CSV template pre-filled with each supplier's name, default account code, and correct purchase tax type. When a new batch of bills arrives, duplicate the template and update only the variable fields: invoice number, date, due date, description, and line amounts. This approach cuts preparation time significantly and reduces mapping errors on every subsequent import.
For users migrating their entire accounting history from another platform rather than importing a batch of current bills, Xero offers the Conversion Toolbox, a dedicated migration tool that handles invoices alongside contacts, chart of accounts, and other data types.
Migrating Invoices from QuickBooks, Sage, or FreshBooks
Switching accounting platforms means moving more than just invoice records. Contacts, chart of accounts, bank transactions, and historical data all need to land correctly in Xero for the migration to hold up under scrutiny. Xero's Conversion Toolbox handles this as a coordinated, one-time migration rather than a piecemeal file-by-file import.
Using Xero's Conversion Toolbox
The Conversion Toolbox is accessed from Settings > General Settings > Conversion in Xero. It is purpose-built for full accounting migrations, importing invoices alongside contacts, account codes, bank transactions, and other financial records in a single guided workflow. The tool validates all data before the final import and flags conflicts such as duplicate contact names or account code mismatches, giving you the chance to resolve issues before anything posts to the ledger.
This is a one-time migration tool, not a recurring import mechanism. Once the conversion is finalized, the Conversion Toolbox locks and cannot be rerun.
QuickBooks to Xero
The Conversion Toolbox directly supports both QuickBooks Online and QuickBooks Desktop exports. The process follows a consistent pattern:
- Export your data from QuickBooks. Xero provides version-specific export instructions for QuickBooks Online and each Desktop edition (Pro, Premier, Enterprise).
- Upload the exported files to the Conversion Toolbox in Xero.
- Map your QuickBooks accounts and fields to their Xero equivalents. The tool suggests default mappings, but review each one carefully since chart of accounts structures often differ between platforms.
- Review the validation report. Both sales invoices and purchase bills transfer, along with their line items, tax codes, and contact associations.
- Confirm and run the import.
Pay particular attention to tax code mappings. QuickBooks and Xero handle tax differently, and incorrect mappings create reconciliation problems that compound over time.
Sage to Xero
For supported Sage products, the Conversion Toolbox accepts Sage exports and processes them through the same guided migration workflow. Export your Sage data following Xero's platform-specific instructions, upload it, map the fields, and review before importing.
For unsupported Sage versions, the Conversion Toolbox is not an option. Instead, export your invoices as CSV files from Sage and use Xero's native CSV import (covered in the earlier sections of this guide). This approach requires manual field mapping to match Xero's expected column headers, but it works reliably for any Sage version that supports CSV export.
FreshBooks to Xero
FreshBooks data can be exported and run through the Conversion Toolbox for a full accounting migration. This transfers invoices, contacts, and other records in one coordinated step.
However, if you only need to migrate invoices without bringing over the entire chart of accounts and transaction history, exporting from FreshBooks to CSV and using Xero's native CSV import gives you more control. You can selectively import specific invoice batches, map fields exactly as needed, and skip records that are no longer relevant. For client migrations where the business wants a clean start with only outstanding or recent invoices, this targeted approach is often preferable.
When to Skip the Conversion Toolbox
For partial migrations where you need to import a specific set of invoices rather than an entire accounting history, native CSV import is faster and more targeted. Common scenarios include:
- Importing only unpaid or outstanding invoices from the previous platform
- Migrating a single client's invoice history during a bookkeeping handover
- Bringing over invoices from a specific date range rather than the full ledger
The broader ecosystem of tools that facilitate moving invoice data between platforms continues to expand, including OCR integration with accounting platforms like Xero that can bridge gaps when direct export paths are limited.
In each of these cases, export the relevant invoices as CSV from your current platform, adjust the column headers to match Xero's required format, and import using the steps outlined in the sales invoice or purchase bill import sections above.
One common migration scenario falls outside both CSV import and Conversion Toolbox workflows entirely: when the invoices you need to bring into Xero exist only as PDF documents or paper records.
Converting PDF Invoices to Xero-Ready CSV Files
Every import method covered so far assumes your invoice data already exists in a structured format, whether a CSV file, an Excel spreadsheet, or an export from another accounting platform. In practice, many businesses receive invoices as PDF email attachments, scanned paper documents, or downloaded files from supplier portals. These unstructured files cannot be uploaded directly to Xero's CSV import tool. The data has to be extracted and formatted first.
The Manual Approach (and Why It Breaks Down)
The straightforward method is to open each PDF, read the invoice fields, and type them into a CSV template row by row. You identify the supplier name, invoice number, date, due date, line item descriptions, quantities, unit prices, and totals, then enter each value into the correct column.
This works when you have five or ten invoices. It stops working when you process dozens or hundreds of vendor invoices per month. At that volume, manual data entry introduces predictable problems:
- Transcription errors in amounts (entering 1,250.00 as 1,520.00) and dates (swapping day and month)
- Inconsistent supplier names across invoices (e.g., "ABC Ltd" vs "ABC Limited" vs "A.B.C. Ltd"), which creates duplicate contacts in Xero
- Hours of repetitive work that pulls accountants and bookkeepers away from higher-value tasks like reconciliation and advisory
Using an Extraction Tool for PDF-to-CSV Conversion
A more practical approach is to use a data extraction tool that reads PDF invoices and produces structured output matching Xero's column requirements. The workflow follows four steps:
- Upload your PDF invoices in batch. Rather than processing files one at a time, upload an entire folder of vendor invoices for a given period.
- Specify the fields to extract. Tell the tool exactly which columns you need, using Xero's field names: ContactName, InvoiceNumber, InvoiceDate, DueDate, Description, Quantity, UnitAmount, AccountCode, TaxType, and Total.
- The tool reads each PDF and extracts the data into a structured CSV or Excel file, with one row per line item across all invoices.
- Review the extracted data before uploading. Check that supplier names are consistent (the same vendor may appear as "ABC Ltd" on one invoice and "ABC Limited" on another), dates follow your Xero organization's format, and account codes map correctly. Then upload to Xero using the native CSV import process described in the earlier sections.
Tools like Invoice Data Extraction are built for this workflow at scale, handling batches of up to 6,000 PDF files in a single job. Rather than configuring rigid templates, you specify what to extract using natural language prompts. A prompt targeting Xero's CSV format might look like:
"Extract ContactName, InvoiceNumber, InvoiceDate, DueDate, Description, Quantity, UnitAmount, Total. Format dates as DD/MM/YYYY. One row per line item."
The tool reads each invoice, identifies the relevant fields, and outputs a structured CSV or Excel file ready for Xero import. For a deeper look at the extraction process, see this guide on converting PDF invoices to structured spreadsheets.
Building a Repeatable PDF-to-Xero Workflow
For businesses that receive vendor invoices as PDFs every month, the real efficiency gain comes from creating a saved extraction prompt configured to Xero's exact CSV column format. With AI-powered invoice data extraction, you can save your Xero-specific prompt to a prompt library and reapply it each month without rewriting instructions.
The repeatable workflow becomes:
- Collect that month's PDF invoices into a single batch
- Upload to the extraction tool and apply your saved Xero prompt
- Download the formatted CSV output
- Review the extracted data for accuracy
- Import to Xero using the native CSV import
This turns what was a multi-hour manual data entry task into a process that takes minutes, with consistent field formatting across every import cycle.
Fixing Common Xero Invoice Import Errors
A failed Xero invoice import typically produces a generic error message that does not pinpoint the exact row or field causing the problem. The fastest path to resolution is matching your error against the known failure modes below, each with a specific fix.
"Contact not found" or duplicate contact creation. The ContactName value in your CSV does not exactly match an existing Xero contact. Even minor differences cause failures or, worse, Xero silently creates a new contact record, leaving you with duplicates. Check for spelling variations, trailing spaces, and abbreviation mismatches ("ABC Ltd" versus "ABC Limited" versus "ABC LTD"). The fix: before importing, export your full Xero contact list from Contacts > Export, then run a comparison against your CSV's ContactName column. Correct any discrepancies in the CSV before uploading.
Date format mismatch. InvoiceDate or DueDate values do not align with your organization's configured date format. This is the most frequent issue for firms working across regions. A UK or Australian organization set to DD/MM/YYYY will misinterpret a US-formatted date like 03/07/2026 as 3 July instead of March 7. To resolve this, navigate to Settings > General Settings and confirm your Date Format setting, then ensure every date in your CSV uses that exact format. Pay attention to separator characters as well: slashes, hyphens, and dots are not interchangeable.
Invalid AccountCode. The AccountCode field references an account that does not exist in your Xero chart of accounts. This commonly happens when you use an account name (like "Office Expenses") instead of the numeric code (like "429"), or when you reference an account that has been archived. Export your chart of accounts from Settings > Chart of Accounts, then cross-reference the exported codes against your CSV. Use the exact code values from the export, not account names or codes copied from another accounting system.
Tax rate mismatch. The TaxType value does not match a configured tax rate name in Xero. This field requires the full tax rate label exactly as it appears in your settings, not an abbreviated version. For example, you need "20% (VAT on Income)" rather than just "20%" or "VAT". Additionally, sales invoices and purchase bills draw from different tax rate sets, so a valid TaxType for a sales invoice may be rejected on a bill import. Check Settings > Tax Rates, note the exact labels for your invoice type (sales or purchases), and update your CSV to match those labels character for character.
Duplicate InvoiceNumber. Xero rejects any CSV row containing an invoice number that already exists in the system. This frequently occurs when re-importing after a partial failure, since the first attempt may have created draft invoices for some rows before the error halted the process. Search your Xero invoices for the duplicate numbers. If they exist as drafts from a previous failed import, delete those drafts before re-uploading. For ongoing imports, maintain a log of successfully imported invoice numbers to avoid resubmission.
Row limit exceeded. Xero's CSV import accepts approximately 500 lines per file. Multi-line invoices count each line item as a separate row, so a file with 100 invoices averaging five line items each would hit 500 lines. Split your CSV into multiple files, each containing fewer than 500 rows. Keep all line items for the same invoice together in one file, since Xero groups multi-line invoices by the InvoiceNumber field. Import each file sequentially.
Currency code errors. For multi-currency organizations, the CurrencyCode field must contain a valid three-letter ISO 4217 code such as GBP, USD, EUR, AUD, or NZD. The currency must also be enabled in your Xero organization before import. Verify that Settings > Currencies lists the currency you are importing. Add any missing currencies there first, then confirm your CSV uses the standard three-letter code with no extra characters or spaces.
Before running any import, work through this pre-import checklist to catch most errors in advance:
- Export and validate contact names against Xero's contact list, correcting mismatches in the CSV
- Confirm the date format in your CSV matches Settings > General Settings > Date Format
- Export the chart of accounts and verify every AccountCode in the CSV exists and is active
- Check Settings > Tax Rates and confirm every TaxType value matches the exact label for your invoice type
- Search for existing invoice numbers that overlap with the CSV to prevent duplicate rejections
- Count total rows and split files that exceed 500 lines
- Test with a small batch of 5-10 invoices before importing the full file
After the Import: Verification and Approval Workflow
Every invoice imported via CSV enters Xero with Draft status. Draft invoices are not posted to the general ledger and do not appear in financial reports, aged receivables, or aged payables until they are approved. This is a deliberate safety mechanism that gives you a window to review imported data before it affects your books.
Post-Import Verification Checklist
Before approving any batch of imported invoices, work through these verification steps:
1. Confirm the invoice count. Compare the number of draft invoices created against the number of rows in your CSV file (excluding the header row and accounting for multi-line invoices that share the same InvoiceNumber). If the counts do not match, check the import summary for skipped or rejected rows.
2. Spot-check individual invoices. Open 3 to 5 invoices at random from the imported batch. For each one, verify that the ContactName, InvoiceDate, DueDate, line item descriptions, quantities, unit amounts, and tax calculations match your source data exactly. Pay particular attention to rounding on tax amounts, as discrepancies of a few cents can compound across a large batch.
3. Verify account code mapping. Review how the imported invoices mapped to your chart of accounts. Navigate to Reports > Trial Balance or open individual account transaction listings to confirm that revenue and expense lines landed in the correct accounts. Incorrect account codes are the most common silent error in bulk imports because the import will succeed even if you mapped a phone bill to an office supplies account.
4. Validate supplier and tax details on purchase bills. For imported bills, confirm that supplier names match existing contacts in Xero and that tax types (e.g., GST on Expenses, BAS Excluded, No GST) are correct. Correcting tax types after approval requires reversing and re-entering the bill, so catching errors at the draft stage saves significant rework.
Approving Imported Invoices
Draft invoices can be approved individually or in bulk.
For sales invoices: Navigate to Business > Invoices, then filter by Draft status. Select the invoices you want to approve using the checkboxes, then choose Approve from the batch actions menu. All selected invoices will be posted to the ledger and become available for sending to customers.
For purchase bills: Navigate to Business > Bills to pay, then filter by Awaiting Approval. Select the bills and approve them in bulk using the same batch action approach. Once approved, the bills will appear in your aged payables and can be scheduled for payment.
Bulk approval is available for both invoice types and is the practical approach for any import of more than a handful of records.
Building a Repeatable Import Workflow
For businesses and firms that import invoices on a recurring basis, investing time in a standardized process pays off quickly.
Standardize your CSV template. If you regularly import invoices, whether monthly vendor batches or ongoing client work, build a master CSV template that is already mapped to Xero's required fields, your chart of accounts codes, and your default tax rates. This eliminates the field-mapping and formatting work from each subsequent import cycle.
Maintain client-specific templates. Firms processing invoices across multiple Xero organizations should keep separate templates for each client. Each client has a different chart of accounts structure and potentially different tax configurations, so a per-client template with pre-filled AccountCode and TaxType columns prevents cross-client mapping errors.
Combine extraction and import for PDF-heavy workflows. For practices that receive invoices as PDFs, a repeatable workflow pairs an extraction tool with Xero's native CSV import: extract the PDF data into a structured CSV, import it into Xero, then verify and approve. This approach is particularly effective for bookkeeping firms handling invoice processing across multiple Xero organizations, where manual data entry does not scale. Firms working across multiple accounting platforms, such as those automating invoice capture for NetSuite, can apply the same extraction-to-import pattern regardless of the destination system.
Regardless of which method you use to prepare your CSV files, the post-import pattern stays the same: verify draft invoices against your source records, then approve them to post to the ledger.
Related Articles
How to Convert PDF Invoices to Xero: 6 Methods Compared
Compare six methods for converting PDF invoices to Xero. From manual rekey to AI-powered API push, with line item support, batch capacity, and cost.
Automated Bookkeeping: The Missing First Step Most Guides Skip
Learn how to automate bookkeeping from document extraction to reporting. Covers the 5-layer automation stack, maturity model, task-by-task guide, and ROI data.
Credit Note vs Invoice: Key Differences Explained
Learn the differences between credit notes and invoices, when to issue each, journal entries on both sides, debit note comparisons, and VAT rules.
Extract invoice data to Excel with natural language prompts
Upload your invoices, describe what you need in plain language, and download clean, structured spreadsheets. No templates, no complex configuration.