AdemeroHelp

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.

For everyone1 hourVerified 2026-09-05

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

  1. In Paige, open Settings (the gear at the bottom of the left menu — administrators only), pick the scan job, and choose Export.

  2. 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.

  3. Click Test Connection. What you should see: FTP connection successful! Connect — Connected to FTP Server! and a green Connected label.

  4. 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 needsPaige field
ContactVendor Name — spelled as the contact is in Xero, or a new contact is created with the invoice's spelling
DateInvoice Date
Due dateDue Date
ReferenceInvoice Number
Line: description, quantity, unit price, account, tax rateTotal 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

  1. Trigger: SFTP by Zapier → New or Updated File (connection: Host, Username, Port Number 22, Password), folder = the scan job's folder.

  2. Filter by Zapier: File Name (Text) Ends with .json.

  3. Code by Zapier → Run Javascript, file mapped 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, "")
    };
    
  1. SFTP by Zapier → Download File, path = the folder plus pdf_file from step 3.

  2. Xero → Create Bill. Map contact_name to contact, date and due_date to the dates (run them through Formatter by Zapier → Date/Time → Format to YYYY-MM-DD first if Xero rejects the printed format), Reference to reference, status to Draft (or Submitted if you want them awaiting approval), and one line item: Description Invoice {{reference}}, Quantity 1, Unit Price total, 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.

  3. Turn the Zap on.

Make

  1. SFTP → Watch files in a folder (connection: Host, Port 22, Auth Type Username and Password), pointed at the scan job's folder.

  2. Filter: File name Ends with .json.

  3. SFTP → Get a file, then JSON → Parse JSON on its data. Run once with a real file so Make learns the fields.

  4. Xero → Search for contacts by name; if none is found, create the contact first with a router branch.

  5. 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.

  6. SFTP → Get a file with path = folder plus parsed metadata.pdf_file, then Xero → Upload a file attached to the bill from module 5.

  7. Set the schedule and turn the scenario on.

Step 4 — Test it

  1. Process one invoice through the scan job in Paige, review it, and wait for the export.

  2. Check the automation's run history: one run, every step green.

  3. 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

SymptomWhere to look
The automation never runsWrong folder, or a subfolder.
Runs four times per invoiceThe .json filter is missing.
Create Bill fails on a dateConvert Paige's printed date to YYYY-MM-DD before mapping.
Create Bill fails on the amountA currency symbol or thousands separator slipped through; the Code step strips them — check the field name matches your Paige field exactly.
A duplicate contact appearsThe invoice spells the supplier differently from the Xero contact. Correct it in Paige during review; merge in Xero.
No attachmentThe 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 PaigeAuto-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.