# Import Paige invoices into Xero from CSV

Export a batch of invoices from Paige, copy the one-row-per-document CSV into Xero's bill import template, and load it — draft bills with contact, dates, reference, and amount filled from Paige, no subscription, PDFs attached by hand if you want them.

Product: paige · Audience: user · Time: 30 minutes the first time, 10 minutes per batch after · Last verified: 2026-09-05

Canonical: https://help.ademero.com/paige/integrations/import-paige-invoices-into-xero-from-csv

**At the end of this guide, a batch of invoices that Paige read becomes a batch of draft bills in Xero in one import — contact, dates, reference, account code, and amount filled from Paige's CSV — with nothing to build and nothing to keep running.**

Xero's importer uses its own template: fixed column names, one row per bill line. Paige's CSV has one row per document with a column per field, so the work is a copy-and-paste between the two in a spreadsheet, then the import. The importer takes no attachments; attach PDFs by hand afterwards, or use the [Zapier or Make path](/paige/integrations/send-paige-invoices-to-xero-with-zapier-or-make) to attach automatically.

## Step 1 — Get the CSV out of Paige

- **Download:** in Paige, open **Documents**, click **Export**, and in the **Export Documents** dialog choose the **Scope**, the **Filters** (**Reviewed** only, **Field Data** with fields, **Status** not yet exported so you don't import twice), tick **Download** under **Destinations**, and confirm. Paige emails a link when the download is ready; the zip contains the PDFs and the data files, including the one-row-per-document CSV.
- **SFTP:** if the scan job exports to SFTP, turn on **Generate combined metadata file** on the **FTP** card so each export run also writes the combined CSV.

Open it in a spreadsheet. **What you should see:** a header row with the PDF file name, the document type, and one column per Paige field, then one row per invoice.

## Step 2 — Fill Xero's template

1. In Xero, open **Business > Bills to pay**, click **New bill**, choose **Import from CSV**, and click **Download template file**. Open the template in the same spreadsheet.
2. Copy Paige's columns into the template's columns:
   
   | Template column | Fill from |
   |---|---|
   | `ContactName` | `Vendor Name` — must match a Xero contact's name exactly, or Xero creates a new contact with that spelling |
   | `InvoiceNumber` | `Invoice Number` |
   | `InvoiceDate` | `Invoice Date` |
   | `DueDate` | `Due Date` |
   | `Description` | Something like `Invoice INV-20441` — required |
   | `Quantity` | `1` |
   | `UnitAmount` | `Total`, as a plain number with no currency symbol or thousands separator |
   | `AccountCode` | The expense account code you post invoices to |
   | `TaxType` | Your usual tax type for purchases (for example `Tax on Purchases`, or `No Tax`) |

3. Check every date is in the same format, and that it's the format your Xero organisation uses.
4. Save the template as CSV.

## Step 3 — Import

1. Back in **Business > Bills to pay > New bill > Import from CSV**, choose the file. Tell Xero whether the amounts are tax inclusive or exclusive, and click **Import**.
2. Xero shows how many bills it will create and any rows it can't read. Fix and re-import those rows if needed.

**What you should see:** the bills under **Bills to pay > Draft**, one per invoice, with the contact, dates, reference, and amount from Paige.

## Step 4 — Attach the PDFs and approve

Open each draft bill, click the attachment icon, and add the matching PDF from Paige's export (the CSV's file-name column tells you which is which). Approve the bills as you normally would.

## When it doesn't work

| Symptom | Where to look |
| --- | --- |
| "Contact not found" or a duplicate contact appears | The vendor name doesn't match Xero's contact spelling. Fix it in the template (and in Paige's field during review next time). |
| Dates rejected | Mixed formats, or not the organisation's format. Make every date the same. |
| Amount imported as 0 or rejected | A currency symbol or comma in `UnitAmount`. |
| Bills imported twice | Use Paige's **Status: Not Exported** filter when exporting and export each batch once. |
| Line-item detail wanted | Put one row per line item with the same `InvoiceNumber`; Xero groups rows into one bill. Paige's line-item table is in the per-document JSON and XML if you need it. |

If a Paige field is consistently misread, improve its extraction guidance: [Write extraction guidance the AI can follow](/paige/document-processing/write-extraction-guidance-the-ai-can-follow).

## What's next

- [Send Paige invoices to Xero with Zapier or Make](https://help.ademero.com/paige/integrations/send-paige-invoices-to-xero-with-zapier-or-make)
- [Connect Paige to Xero](https://help.ademero.com/paige/integrations/connect-paige-to-xero)
