Xero Error 429

Let’s Dive in…

How to Fix Xero
Error = 429

 

QuickBooks Online

* All trademarks and logos are the property of their respective owners. Images for visual reference only.

Xero Error Guide · HTTP Status Errors

How to Fix Xero Error 429 — Too Many Requests

A third-party app, integration, or API call received: "HTTP 429 — Too Many Requests" when connecting to Xero

Error 429 means the connection to Xero has exceeded the number of API requests allowed within a time window. At QuickFix Bookkeeping, if you are a regular Xero user — not a developer — the fix is simply to wait. If you build or manage integrations, this page covers the specific limits and how to stay within them.

The QuickFix Bookkeeping Distinction

Error 429 is the one Xero error that regular users almost never see in their browser. It appears almost exclusively in third-party app sync logs and API integrations.

If you are a regular Xero user

You saw 429 in an app's sync error log or notification — e.g. Shopify, Stripe, a payroll app, or an inventory system.

Wait 1–60 minutes. The app's sync will retry automatically. Your data is safe — the sync paused, nothing was lost or duplicated.

If you build or manage an integration

Your integration is exceeding Xero's rate limits. You need to implement exponential backoff, respect the Retry-After header, and reduce call frequency.

See Methods 3–5 below for the technical fix.

How 429 differs from all other Xero errors: Every other Xero HTTP error (400, 401, 403, 404, 500) indicates something went wrong with the request or the server. Error 429 means everything is fine — the request was valid, credentials are correct, the resource exists — but Xero deliberately blocked it because the integration is making too many calls too fast. It is a throttling mechanism, not a failure. The data is intact and the block is temporary.

What Is Xero Error 429?

Error code

429

HTTP · Too Many Requests

Related: Xero 400 · Xero 403 · Xero 500

What it means

Error 429 is Xero's rate-limiting response. Xero allows a set number of API calls per minute and per day per organisation. When an integration exceeds these limits, Xero returns 429 and stops processing further requests until the rate limit window resets. This is a deliberate protection mechanism — not a bug.

Your Xero data is completely safe. Requests that received a 429 were not processed — they were blocked before execution. No transactions were partially saved, duplicated, or corrupted. Once the rate limit resets, the integration can resume normally.

Xero's API Rate Limits — The Exact Numbers

Per Xero's official developer documentation. These limits apply per organisation per connected app.

Per-minute limit

60

API calls per minute
per organisation

Daily limit (uncertified)

1,000

API calls per day
uncertified apps

Daily limit (certified)

5,000

API calls per day
certified / Xero App Store apps

What Causes Xero Error 429?

🔄

Too-Frequent Sync Polling

Most common cause — an integration is set to sync every 1–5 minutes, making a new API call on each sync. Across multiple organisations or endpoints, this quickly exceeds 60 calls per minute. Reduce sync frequency to 15–30 minute intervals.

📦

Large Batch Sync — Individual API Calls Per Record

An integration syncing hundreds of records (invoices, contacts, accounts) one API call per record. 60 records in 60 seconds hits the per-minute limit. The fix is batching — Xero allows multiple records in a single API call.

🔁

Integration Retrying Without Backoff

When a 429 occurs, a poorly configured integration immediately retries — generating more 429 responses in a loop. This is a bug in the integration's error handling. Proper exponential backoff (wait 1s, 2s, 4s, 8s between retries) prevents this spiral.

🏢

Multiple Apps Sharing the Same Org

The 60 calls/minute limit applies per organisation across all connected apps. If two or three integrations each make 30 calls/minute to the same Xero organisation, they collectively exceed the limit and all receive 429.

📋

Hitting the Daily 1,000-Call Limit

Uncertified apps are limited to 1,000 calls per day. For high-volume operations (many invoices, contacts, or transactions), this daily cap can be reached before the business day ends. Certifying the app raises this to 5,000/day.

🌐

Third-Party App Bug or Misconfiguration

A connected app (inventory system, e-commerce platform, payroll software) has a bug or misconfiguration causing it to make far more API calls than intended. Check the app's sync logs and contact the app's support team if calls are far above expected volumes.

How to Fix Xero Error 429 — Step by Step

If you are a regular Xero user who saw this in an app's error log — start with Method 1. If you manage the integration — start with Method 2.

METHOD 1 Wait — The Rate Limit Resets Automatically Regular Xero users — this is usually all you need to do

Xero's per-minute rate limit resets every 60 seconds. The daily limit resets at midnight UTC. For most users who see a 429 in a third-party app's sync log, waiting a short time and allowing the app to retry is the complete fix.

1

If an app (Shopify, Stripe, payroll software) reported a 429 — wait 5–10 minutes. Well-built integrations will automatically retry after a delay and the sync will resume without any action from you.

2

If the error keeps recurring daily — the integration is consistently exceeding the rate limit. Contact the app's support team and report the recurring 429 errors. They need to reduce how frequently their app calls Xero's API.

QuickFix tip: A 429 error means your transaction data is safe. Xero blocked the request before processing it — nothing was partially saved or duplicated. When the integration retries after the rate limit resets, transactions will sync correctly.

METHOD 2 Reduce Sync Frequency in the Third-Party App Recurring 429 — app syncing too often

If a specific app repeatedly triggers 429 errors, its sync frequency is too high. Most integrations allow you to configure how often they sync to Xero.

1

In the third-party app's settings — find the Xero sync or integration settings. Look for a sync frequency or polling interval setting. Change from every 1–5 minutes to every 15–30 minutes.

2

If the app does not have a configurable sync interval — contact the app's support team. This is a configuration limitation on their side that they need to address.

METHOD 3 Implement Exponential Backoff and Respect Retry-After Header Integration developers — handle 429 correctly in code

When Xero returns a 429, it includes a Retry-After header specifying how many seconds to wait before retrying. Reading this header and waiting the specified time is the correct response — not an immediate retry.

1

When your code receives a 429 — read the Retry-After response header. Wait exactly that many seconds before retrying the request. Do not retry immediately.

2

If no Retry-After header — implement exponential backoff: wait 1 second after the first 429, 2 seconds after the second, 4 after the third, 8 after the fourth, up to a maximum of 60 seconds.

3

Monitor the x-rate-limit-remaining response header on every API call. When this approaches 0 — slow down proactively before hitting the limit, rather than waiting for a 429.

METHOD 4 Batch API Calls — Multiple Records Per Request Integration developers — reduce call volume

Xero's API allows multiple records in a single API call. Sending 50 invoices in one call uses 1 of your 60 per-minute calls instead of 50. This is the most effective way to stay within rate limits for high-volume operations.

1

Use batch POST/PUT requests for Invoices, Contacts, and Bank Transactions — Xero supports up to ~50 nodes per request (keep under 3.5MB). Instead of 50 separate invoice calls, make 1 call with all 50 invoices in the payload.

2

Use pagination and filtering to retrieve data efficiently. Use the ModifiedAfter filter to fetch only records changed since the last sync — not the entire dataset on every sync. Cache static data (Chart of Accounts, contacts) locally rather than re-fetching on every sync.

METHOD 5 Apply to Certify the App — Raise the Daily Limit to 5,000 Genuinely need more than 1,000 calls/day

If your integration legitimately needs more than 1,000 API calls per day after batching and caching optimisations, Xero certification raises the daily limit to 5,000 calls per day per organisation.

1

Apply for Xero certification through the Xero App Store program at developer.xero.com. Certification requires meeting Xero's integration quality standards. Once certified, your app's daily limit increases to 5,000 calls per day per connected organisation. For requirements beyond 5,000 calls, contact Xero's partner team directly.

Quick Reference — Match Your Situation to the Fix

Your situation Most likely cause Action
Saw 429 in a third-party app's error log App exceeded per-minute limit Method 1 — wait, app will auto-retry
429 recurring daily from same app Sync frequency too high Method 2 — reduce sync frequency
Your integration retries on 429 immediately Missing backoff logic Method 3 — implement backoff + Retry-After
Syncing many records one call per record Not using batch API calls Method 4 — batch 50 records per call
Legitimately need 1,000+ calls/day Uncertified app daily limit too low Method 5 — certify via Xero App Store

Frequently Asked Questions

Will any transactions be lost or duplicated because of a 429 error?
No. A 429 response means Xero rejected the request before processing it — the transaction was never written to your Xero books. When the integration retries after the rate limit resets, the same transaction is sent again and processed correctly. There is no partial save and no risk of duplication from the 429 itself. The risk of duplication arises only if the integration has a bug where it retries a request that Xero actually did process before returning an error — but this is an integration bug, not caused by the 429 itself. Well-built integrations handle this correctly using idempotency keys.
Does the 60 calls/minute limit apply per app or across all apps connected to my organisation?
The 60 calls per minute limit is per organisation — meaning it is shared across all connected apps. If you have three integrations each making 25 calls per minute to the same Xero organisation, their combined 75 calls/minute exceeds the limit and some will receive 429 responses even if each individual app is below 60. The daily limit (1,000 for uncertified, 5,000 for certified) applies per app per organisation — so each app has its own daily budget. This means you can have multiple apps running simultaneously without sharing the daily limit, but they do share the per-minute limit.
I am a regular Xero user who does not manage integrations — can I personally trigger a 429?
Almost certainly not through normal Xero use. The rate limits apply to API calls — the programmatic connections made by integrations. Regular use of the Xero web interface (clicking buttons, opening pages, entering transactions) does not generate the kind of API call volume that triggers a 429. If you see a 429 error, it is coming from a connected app making API calls in the background, not from your manual activity in Xero's browser interface. The only exception is if you are using a Xero add-on or browser extension that makes API calls on your behalf — in which case, contact that tool's support team.

Related Xero Errors

Recurring 429 Errors Disrupting Your Xero Integrations?

Let QuickFix Bookkeeping Audit and Fix Your Xero Integration.

Certified Xero Advisors · Integration Specialists

Recurring 429 errors from Shopify, Stripe, payroll apps, or custom integrations mean your sync is unreliable and transactions may be delayed or missed. Our certified Xero advisors audit your integration configuration, implement the right sync frequency, and ensure your data flows accurately into Xero without rate limit interruptions.

Book a Free 30-Minute Consultation

No obligation. Same-day response. Xero integration stabilised fast.