Insights

Xero API access costs money now. What to do about it.

On 2 March 2026, Xero retired the 15 percent revenue share it used to take from App Store vendors and replaced it with a tiered pricing model based on connected organisations and data volume. Every business that pulls accounting data out of Xero programmatically is affected. A dashboard, a sync pipeline, an LLM workflow that reads invoices from the Xero API - the economics just shifted.

Five tiers make up the new structure. Starter is free but capped at 5 connected organisations. Core costs $35 AUD per month for 50 organisations and 10 GB of data egress. Plus is $245 AUD for 1,000 organisations and 50 GB. Advanced is $1,445 AUD for 10,000 organisations and 250 GB. Enterprise is negotiated. The overage rate across all paid tiers is $2.40 AUD per additional gigabyte pulled from the API (Xero Developer, Pricing, 2026).

Data ingress is still free. Only GET requests count. If your integration pushes data into Xero, nothing changes. If it pulls data out, you are now paying for the volume.

Migration deadline was 1 July 2026. Existing apps received 30 days notice. There was no grandfathering (Truto, March 2026).

Why this matters for Australian SMEs

Most small businesses using Xero do not build their own integrations. They use tools that connect to Xero on their behalf: reporting dashboards, receipt scanners, job management platforms, cashflow forecasters. Those tool vendors now have a new cost line. Some will absorb it. Most will pass it through, either as a price increase or as a usage cap.

One developer reported their annual Xero API cost jumping from nearly zero to over $17,000 under the new model (Truto, March 2026). That cost lands somewhere in the chain between Xero and the end user.

For businesses running their own integrations via n8n, Zapier, or custom scripts, the risk is different. A sync pipeline that polls Xero every hour to download full invoice datasets will burn through egress fast. At $2.40 per gigabyte overage, a mid-size business syncing invoices and bank transactions daily could see $50 to $200 in monthly overage charges on top of the base tier.

What to do about it

Two ways to cut the bill. A third that saves API calls.

Use webhooks instead of polling. Xero supports webhooks for changes to invoices and contacts. Instead of downloading the full dataset every cycle, your integration gets notified when something changes and fetches only the delta. Webhooks retry for 24 hours on failure, then disable. Your integration needs to handle re-enablement (Xero Developer, Webhooks, 2026).

Delta sync with If-Modified-Since. For endpoints that do not support webhooks, pass the If-Modified-Since header to skip unchanged records. This cuts egress volume by 60 to 80 percent in most sync scenarios.

Cache reference data. Chart of accounts and tax rates change rarely. Fetch them once and cache locally. Refresh weekly, not hourly.

The rate limit you might hit first

Separate from pricing, Xero enforces 60 API calls per minute per tenant and 5,000 calls per day (Xero Developer, Rate Limits). For a business with a single Xero organisation, 5,000 calls per day is enough for most automation. But if you are running multiple workflows that each poll different endpoints, you can hit the daily cap before you hit the egress cap. Design your integration to batch reads and minimise unnecessary calls.

Days of treating the Xero API as an unlimited data source are over. Integrations that were built on “poll everything, sort it later” need rethinking. The businesses and vendors that move to event driven architectures now will spend less and break less often.

Sources