Guides → Add attachments to many invoices at once: a guide for Xero users
Add attachments to many invoices at once: a guide for Xero users
Xero attaches files to one invoice at a time. People on its Product Ideas board describe the same chore: a few dozen scanned PDFs, one per invoice, each added by hand, or twenty photos on one invoice taking three to four minutes. This guide gives the manual route, where it runs out, and a way to attach a whole folder of PDFs named by invoice number, with a preview first.
Based on the Xero Product Ideas thread "Invoices: Bulk add attachments to many invoices" as read on 7 November 2026 (37 votes, status Submitted, first posted in December 2022) and Xero's developer page on attachments.
The manual way, invoice by invoice
- Open the invoice or bill.
- Add the file as Xero describes (Attach a file to a transaction).
- Repeat for the next invoice. There is no select-all.
Commenters on the Product Ideas thread ask for exactly that: select the invoices and attach in one step. The latest comments are from 22 October 2026 and 12 October 2026, so the request is still open and Xero has not marked it planned.
Where the manual way runs out
- It is per invoice. Fifty invoices means fifty trips into an invoice and back.
- The same file on many invoices (a terms sheet on 100 drafts, one commenter's case) is a different job from one PDF per invoice. The tool below does not do it.
A folder of PDFs, one per invoice
The Unapprove "Attach PDFs" page takes a folder of PDFs named by
invoice number, INV-0042.pdf for invoice INV-0042, and
adds each file to its invoice or bill. It works in three steps and the first two
write nothing.
- Choose the PDFs. Up to 100 per run, each up to 10 MB. The files stay in your browser and are not stored by us.
- Read the preview. Every file is listed with what would happen to it: ready, unsure, more than one match, not found, already attached, invoice full, voided or deleted invoice, too large, not a PDF. You can download the preview as a CSV.
- Confirm by typing the count, for example
ATTACH 37. Only then are the ready files attached, one at a time, with a CSV log at the end.
What it will and will not attach
- Only an exact match. The file name without
.pdfmust be the invoice number, letter for letter and in the same case, and one document in the organisation must carry that number.INV-004.pdfis never attached toINV-0042. - "Scan INV-0042 final.pdf" is shown as unsure and skipped. So are names that differ only in upper and lower case, and names with two invoice numbers in them. Rename the file to the exact number and run it again.
- Same number on two documents (a sales invoice and a bill can share one) is shown as more than one match and skipped.
- A file name already on the invoice is skipped. Xero's API replaces an attachment that has the same file name, so we never send one.
- Xero allows 10 attachments per document, each up to 10 MB. An invoice that is full, a larger file, and a voided or deleted invoice are listed and skipped.
- After each upload the invoice's file list is read again, and a file Xero said yes to but did not store is reported as not verified.
The one thing that cannot be undone
Xero's attachments API supports GET, PUT and POST. It has no way to delete an attachment. If a file ever lands on the wrong invoice, you remove it by hand in Xero, one invoice at a time, and Unapprove cannot do it for you. That is why the page matches only exact numbers, shows every decision before writing, and asks you to type the count.
Speed, limits and what was tested
- Each file takes about three Xero calls (read the file list, upload, read it back). Calls are held to 55 a minute per organisation, so 50 files take about three minutes. Keep the page open.
- If Xero asks us to slow down, or the day's call budget for the organisation is used up, the run stops and reports what was attached and what was not. Files already attached stay attached.
- The matching, the preview, the confirmation, the same-name skip, the read-back and the stop on a rate limit are covered by automated tests against a simulated Xero. A run on a live Xero organisation has not been measured yet; try it on a few files first.
Price
Included in the plan, no add-on. The free trial previews without limit and attaches up to five files per run. The monthly plan ($29 per month per connected organisation) and the 30-day Clean-up Pass ($49 one-off) attach whole folders. Prices are in US dollars and exclude VAT and sales tax (added at checkout); the pricing page has the details. Founding offer: 40% off your first payment with code FOUNDING40 until 30 November 2026. Applied at checkout. A first payment is refundable within 14 days if nothing was processed with it.