Integrations

Xero integration: what to sync and what to leave

Send Xero what your accountant needs to close the books, and little more. Most failed Xero integrations try to mirror everything, and then spend their time arguing with the people who use Xero every day.

By itmarkerz Technologies. Updated 30 October 2026.

What to sync

We run a live Xero sync on a UK billing platform, alongside QuickBooks Online and Sage. This table is a starting position for a business that bills from its own system. Your accountant may change it, and that conversation is the most useful hour of the project.

What to sync with Xero, for a business that invoices from its own system
DataSync?Why
Customers (contacts)Yes, one way, with Xero’s ID stored on your sideInvoices need them. Match on your ID, not on the name
Invoices and credit notesYes, once issuedThis is the core of the integration. Drafts stay on your side
Payments and feesYes, if you collect in your systemStops finance entering them twice
Chart of accounts and tax ratesRead only, for your mapping screenXero owns these; your app should never edit them
Products and price listsUsually noLine descriptions and account codes are usually enough
Purchase billsOnly if your system handles themOtherwise they’re finance’s work, and not your concern
Bank transactionsNoBank reconciliation belongs in Xero, with Xero’s tools
Manual journalsRarelyUse only if your accountant asks for summary posting
Xero reportsRarelyBuild your operational reports from your own data

The limits you are designing around

Xero API limits per connected organisation, checked 30 October 2026
LimitValue
Concurrent calls5
Calls per minute60
Calls per day, Starter tier1,000
Calls per day, Core and above5,000
App-wide calls per minute10,000
Connections, Starter / Core / Plus / Advanced5 / 50 / 1,000 / 10,000

Sources: Xero’s API limits and pricing tiers. Exceeding a limit returns HTTP 429, with an X-Rate-Limit-Problem header naming which one and Retry-After saying how long to wait. Responses also report how much allowance remains. Read these rather than hard-coding a delay.

Sixty a minute sounds like plenty until a first sync of several years’ invoices, or a month-end bill run. Do the arithmetic with your real volumes. A customer with a few hundred invoices a day on the Starter tier is close to its cap once you add contacts and payments. So queue calls per organisation, group what Xero lets you group, and fetch only changed records where the endpoint supports it.

The failures to design for

  • Lock dates. Accountants lock periods after closing. A back-dated invoice or credit note will then be rejected. Your system must hold it, say why in plain language, and let finance decide the new date.
  • Missing mapping. A new product needs an account and tax code. Stop that one document and tell finance rather than posting to a guessed code.
  • Duplicate contacts. “Acme Ltd” and “ACME Limited” are the same customer to a person, and different to an API. Store Xero’s contact ID once matched, and offer a matching screen for the first import.
  • Retry after a timeout. Xero may have created the invoice even though your request timed out. Check using your unique invoice number before you create it again.
  • A connection that stops working. Connections end when someone revokes access or leaves the company. Detect it, pause the queue, keep the data, and ask a named person to reconnect.
  • Someone edits an invoice in Xero. Finance can change a document you posted. Agree whether they may, and how your system finds out, or the two sets of figures will drift.

Check it every day

Even a good sync needs a daily check. Compare the totals of what you sent with what Xero holds, per day and per customer, and raise any difference. The platform we built for a UK client runs nightly balance checks for this reason. A sync with no such check can be wrong for months, and the first to notice will be your accountant at year end.

For how Xero fits with Stripe, QuickBooks and Sage, see the UK finance integration map.

Where we run a Xero sync

Questions

What are the Xero API rate limits?

Per connected organisation: 5 concurrent calls, 60 calls a minute, and a daily limit of 1,000 on the Starter tier or 5,000 on higher tiers. There is also a limit per minute across all of your app's connections, documented as 10,000. Xero returns HTTP 429 when you exceed one.

Does a custom integration for one company need a paid Xero tier?

It depends on your connections and usage. Xero's Starter tier currently allows 5 connections and has no monthly fee, but with the lower daily limit. Check the current pricing page, because Xero's tiers have changed before and may do so again.

More on integrations

Connecting your system to Xero?

Tell us what you bill from and how your accountant works. We will tell you what we would sync, and what we’d leave alone.

We reply within one business day (IST).