Send Paige invoices to Xero with Zapier or Make
Build the Zap or Make scenario that watches Paige's SFTP export folder, creates the bill in Xero from Paige's extracted fields, and attaches the PDF — so every invoice Paige finishes becomes a Xero bill on its own.
Before you begin
- A Xero organisation and a user who can create bills
- A paid Zapier or Make plan that includes the SFTP connector
- An SFTP server Paige can reach, with a folder for this scan job
- A Paige scan job with an invoice document type whose fields include vendor name, invoice number, invoice date, due date, and total
At the end of this guide, every invoice Paige finishes becomes a bill in Xero within minutes — contact set, dates and total filled, invoice number as the reference, PDF attached — with no data entry.
The automation is: SFTP trigger → keep only the data file → read the values → fetch the PDF → create the bill with the PDF attached. Paige uploads the PDF before the data file, so the PDF is always there when the automation fires.
Step 1 — Point Paige at your SFTP server
In Paige, open Settings (the gear at the bottom of the left menu — administrators only), pick the scan job, and choose Export.
Click the FTP card. Enter the FTP Address, Port
22, Username, Password, and in FTP Folder Path a folder for this scan job, such as/paige/invoices.Click Test Connection. What you should see:
FTP connection successful!Connect —Connected to FTP Server!and a green Connected label.Turn on Enable Auto Export. Under Auto Export Settings, pick your invoice type under Document Types, set Auto Field Entry Complete to Yes, and set Human Reviewed to Reviewed so a person glances at each invoice in Paige before it becomes a bill. Click Save.
Open port 22 on your firewall to Paige's address ranges — Outbound IP ranges for firewall allow-lists.
Step 2 — Check Paige's fields cover a bill
| Bill needs | Paige field |
|---|---|
| Contact | Vendor Name — spelled as the contact is in Xero, or a new contact is created with the invoice's spelling |
| Date | Invoice Date |
| Due date | Due Date |
| Reference | Invoice Number |
| Line: description, quantity, unit price, account, tax rate | Total for the price; description, account, and tax rate are set in the automation |
Values export as text exactly as printed. The automation converts dates and strips currency symbols.
Step 3 — Build the automation
Zapier
Trigger: SFTP by Zapier → New or Updated File (connection: Host, Username, Port Number 22, Password), folder = the scan job's folder.
Filter by Zapier: File Name (Text) Ends with
.json.Code by Zapier → Run Javascript,
filemapped to the trigger's file:const doc = await (await fetch(inputData.file)).json(); const f = doc.fields; return { pdf_file: doc.metadata.pdf_file, contact: f["Vendor Name"], reference: f["Invoice Number"], date: f["Invoice Date"], due_date: f["Due Date"] || "", total: (f["Total"] || "").replace(/[^0-9.\-]/g, "") };
SFTP by Zapier → Download File, path = the folder plus
pdf_filefrom step 3.Xero → Create Bill. Map contact_name to
contact, date and due_date to the dates (run them through Formatter by Zapier → Date/Time → Format toYYYY-MM-DDfirst if Xero rejects the printed format), Reference toreference, status to Draft (or Submitted if you want them awaiting approval), and one line item: DescriptionInvoice {{reference}}, Quantity1, Unit Pricetotal, Account your purchases account, Tax Rate your usual purchase tax rate. Set attachment to the Download File output from step 4 — Xero's Create Bill takes the PDF directly.Turn the Zap on.
Make
SFTP → Watch files in a folder (connection: Host, Port 22, Auth Type Username and Password), pointed at the scan job's folder.
Filter: File name Ends with
.json.SFTP → Get a file, then JSON → Parse JSON on its data. Run once with a real file so Make learns the fields.
Xero → Search for contacts by name; if none is found, create the contact first with a router branch.
Xero → Create an invoice with the type set to a bill (accounts payable), the contact from module 4,
parseDate()of the dates, the invoice number as reference, and one line with description, quantity 1,parseNumber()of the total, your purchases account, and tax rate.SFTP → Get a file with path = folder plus parsed
metadata.pdf_file, then Xero → Upload a file attached to the bill from module 5.Set the schedule and turn the scenario on.
Step 4 — Test it
Process one invoice through the scan job in Paige, review it, and wait for the export.
Check the automation's run history: one run, every step green.
In Xero, open Business > Bills to pay (the Draft or Awaiting approval tab, depending on the status you chose). What you should see: the bill with the contact, dates, reference, and total from the invoice, and the PDF on its attachment icon.
When it doesn't work
| Symptom | Where to look |
|---|---|
| The automation never runs | Wrong folder, or a subfolder. |
| Runs four times per invoice | The .json filter is missing. |
| Create Bill fails on a date | Convert Paige's printed date to YYYY-MM-DD before mapping. |
| Create Bill fails on the amount | A currency symbol or thousands separator slipped through; the Code step strips them — check the field name matches your Paige field exactly. |
| A duplicate contact appears | The invoice spells the supplier differently from the Xero contact. Correct it in Paige during review; merge in Xero. |
| No attachment | The PDF path is wrong — it must be the folder plus pdf_file from the data, not the trigger file's name. Xero allows 10 attachments per bill. |
| Nothing arrives from Paige | Auto-export criteria aren't met, or the invoice was processed before you enabled auto export. Export once from the Documents page with Export and tick FTP. |
If the Paige side is the problem, contact Ademero support with the scan job name and the message from Test Connection.
