Skip to content

Attach invoices and receipts in Xero

Bring actual files from Dropbox, Google Drive, a conversation or your computer into Xero.

Read as Markdown

Start with the actual file

The Xero connector uploads supporting files to existing supported records. It does not provide Dropbox or Google Drive access. Your agent may have a separate authorized file integration that can retrieve the original document.

A sharing URL, local path, extracted text or another app’s file ID alone is not a native file attachment. Do not turn a sharing URL into a fabricated MCP file reference or make private files public just to upload them.

Choose the file source

  • Dropbox or Google Drive: ask the agent to retrieve or download the original file using its available file integration. If that client cannot transfer the file, download it yourself and attach it to the chat or use the secure upload fallback below.
  • Your computer: use a desktop agent with authorized access to the selected folder, or attach the file yourself. A path written in a message does not grant folder access.
  • This conversation: use the actual file you attached, if the client supports native MCP file input.

The connector and file integration have separate permissions. A file being visible in one tool does not guarantee another tool can retrieve its bytes.

Give your agent the task

Name the source and existing target, and let the agent explain any file-transfer limitation.

Example prompt

Retrieve the original invoice PDF from the file source I have authorized, find the matching existing Xero transaction and show me the intended attachment target. Attach the original file within my authorization. If this client cannot transfer it, give me the connector’s secure upload link instead of passing a sharing URL as a file.

Check the result

Use the connector’s confirmed upload result and inspect the attachment on the intended Xero record when needed. Do not recreate the transaction to attach a file. If an upload’s outcome is uncertain, preserve its retry identifiers and resolve the outcome before starting a duplicate upload.