If you've searched Power BI for a Xero connector and found nothing, you haven't missed it. Power BI doesn't have a built-in Xero connector, and Xero's own Power BI content pack seems to have been retired: its pages on xero.com no longer load. That leaves three routes, and which one suits you depends on how much data you need and how fresh it has to be.
Quick answer
| Route | Good for | Effort |
|---|---|---|
| A connector app from the Xero App Store | Transaction-level data, dashboards that refresh daily or more often | Low; usually a subscription |
| The Xero API | Full control, custom data models | High; you build and maintain it |
| Report files in SharePoint or OneDrive | A handful of reports (P&L, aged receivables, invoice lists) refreshed weekly or monthly | Low once set up |
Route 1: a connector app
Xero's App Store has a collection called Integrate Xero with Power BI. The apps in it work in different ways. Some publish an OData feed that Power BI reads directly, some sync your data on a schedule, and some come with ready-made Power BI reports. Names you'll see there include OdataLink, SyncHub, Redware, Accounting.Bi, Acterys and dataSights.
This is the route to take if you want transaction-level data: invoices, bills and payments, sliced any way you like. Check which Xero data each app pulls before you pick one. Compare how often each app refreshes, how many organisations it covers and whether it includes the report templates you'd otherwise build yourself. Most of the ones we priced charge a monthly subscription, and OdataLink has a limited free edition, so check what each costs for your number of organisations.
Route 2: the Xero API
You can register your own app at developer.xero.com, connect with OAuth 2.0 and pull whatever you need into a database that Power BI reads. It's the most flexible route and the most work: you handle authentication, token refresh, paging and errors yourself.
Mind the limits. Xero allows your app 60 calls a minute per organisation, and the daily allowance depends on your developer plan: 1,000 calls per organisation a day on the free Starter tier and 5,000 on the paid Core tier. A full sync of a busy organisation's transactions can use a lot of that.
Route 3: report files refreshed from SharePoint or OneDrive
If what you want in Power BI is the same few reports every week or month, you don't need a live connection. Put the Excel or CSV files in SharePoint or OneDrive for work or school, point Power BI at them, and replace the files when new ones arrive.
- Get the files on a schedule. Xero can export any report to Excel by hand, but it can't yet send one on a schedule. Reportpost can: it emails the reports you pick as Excel or CSV on the day you choose.
- Save the attachments to SharePoint or OneDrive. In Power Automate, the "Save Office 365 email attachments to OneDrive for Business" template does this; swap in the "Create file" action for SharePoint if you prefer. Reportpost's file names include the period, so set a fixed name in the flow, one per report (for example "Profit and Loss.csv"), and save it to the same folder each time, overwriting the old file. If your "Create file" step won't overwrite an existing file, use "Update file" for runs after the first. The Office 365 template needs the reports to arrive in a work Microsoft 365 mailbox. Power BI reads whatever is at that address on its next refresh. We cover the setup in saving Xero reports to OneDrive, SharePoint or Google Drive.
- Connect Power BI to the file. In Power BI Desktop, connect with the Web or SharePoint folder connector using the file's web address, not a synced folder on your computer. A local path makes Power BI treat the file as on-premises, and then you'd need a gateway.
- Set up refresh. A file in SharePoint or OneDrive for work or school, connected by its web address, shouldn't need a gateway. Schedule a refresh after the report usually arrives; on a Pro licence you get up to 8 scheduled refreshes a day.
Shape the data in Power Query
Financial reports are laid out for people, not for Power BI. A profit and loss export has section headings, subtotals and, if you compare periods, one column per period, so expect to clean it up in Power Query: remove the heading and total rows, then unpivot the period columns into one "period" column and one "amount" column. List reports are easier. A list of unpaid invoices or invoices raised already has one row per invoice, with the contact, dates and amounts in their own columns, plus a total row at the end to filter out.
If you only need the numbers, CSV is the simpler format to feed Power BI. Reportpost sends one CSV per report: a header row, then the rows, with amounts as plain numbers (no currency symbols or thousands separators). Section headings and totals are still there, so the clean-up above applies.
Which route to pick
- A board dashboard of monthly results: route 3. Schedule the P&L with the previous 11 periods as comparison columns, so each new file carries a rolling year. Or keep one file per month in a folder and combine them with Power BI's SharePoint folder connector. Refresh only needs to happen once a month.
- A weekly debtors view: route 3 with an unpaid invoices list, or route 1 if you want to drill into payments.
- Sales analysis by customer, item or region: route 1 or 2. Reports summarise, and you'll want the transactions.
- Several entities consolidated: route 1. Several connector apps support more than one organisation, but prices are often per organisation.
To see what the scheduled files look like, try the Reportpost demo with sample data; no Xero connection needed.
Related: where every Xero export lives, exporting Xero reports to Excel automatically and a profit and loss by month in Xero.