Xero Expenses - Ability to bulk import Expenses
Problem
The migration to the new Xero Expenses module has created a significant regression in workflow efficiency. Specifically:
No bulk entry path exists. Organizations processing high volumes of expenses must manually create each item one-by-one through the new expense form — which is itself slower and more cumbersome than the legacy interface it replaced.
The API is a dead end. Both the Receipts and ExpenseClaims endpoints are marked DEPRECATED, yet no replacement public API has been introduced for the Xero Expenses module. Receipts submitted via the deprecated API don't surface anywhere in the current Expenses UI. This means integrators and partners who built automation around the old endpoints are left with zero programmatic access.
The result: what was previously automatable is now entirely manual. This disproportionately impacts accounting firms, finance teams, and any organization processing more than a handful of expenses per period.
Proposed Solution
Two capabilities, in priority order:
A public API for Xero Expenses — RESTful endpoints for creating, reading, updating, and submitting expense items and claims programmatically. This unblocks every integration partner and internal automation workflow currently broken by the deprecation.
CSV/batch import in the UI — a native bulk upload path with field mapping, validation, and duplicate detection for users who don't have API access.
Impact
Processing time: 85%+ reduction for bulk expense workflows (from minutes-per-item to seconds)
Error rate: ~70% reduction by eliminating manual re-keying
Reimbursement cycle: Days faster, directly improving employee satisfaction and retention
Competitive exposure: Emerging platforms (Dext, Pleo, Brex) are winning mid-market customers specifically on bulk processing and API-first design. Every month without this capability is a month Xero Expenses looks like a downgrade from the system it replaced.
The core issue: Deprecating the old API without providing a replacement means Xero has removed functionality without an alternative. That's not a migration — it's a gap.
Thanks for re-raising the idea with us here, Ben. We'll see if this idea gains support from more community users and please do share if there are others that you feel would benefit from this too sop they can add their support.
In terms of the API we have a separate idea forum where these ideas can be raised and experts that are better suited to handle and review these sort of requests.
I've found an idea for an API for the Xero expense feature that you may like to support for this.