Menu

Xero integration: connecting Xero to your CRM and other systems

Comingwave team · 7 minute read · published

An office manager at a desk with two monitors compares customer records and invoices in a wholesale office.

A Xero integration connects Xero to the other systems your business runs on, such as your CRM (customer relationship management system), job management tool, online store or payroll, so that contacts, invoices and payments are entered once and appear everywhere they are needed. Done well, it removes double entry and the errors that come with it. This guide explains what an integration actually does, the rules Xero sets for anything that connects to it, how to choose between an app marketplace connector and a custom build, and what to check before you start.

What a Xero integration does

An integration is software that passes records between two systems through their APIs. An API (application programming interface) is the official doorway a product offers so that other software can read and write its data. Xero describes its Accounting API as exposing the accounting functions of the main Xero application, from creating transactions such as invoices and credit notes through to extracting accounting data through its reports.

Most small business integrations move three kinds of record:

  • Contacts: a customer created in the CRM is created in Xero, and a change of address in one place updates the other.
  • Invoices: when a job is completed or an order is shipped, the invoice is raised in Xero automatically with the right account codes and tax treatment.
  • Payments: when the invoice is paid, the status flows back so sales and service staff can see it without logging in to the accounts.

Consider a wholesaler whose office manager re-types every accepted CRM quote into Xero. An integration turns the accepted quote into a draft invoice and shows the sales team which accounts are overdue.

Xero API basics and limits

A few of Xero's rules shape what is possible. The figures below come from Xero's own developer documentation and can change, so have your developer confirm them at the start of the project.

How access is granted

Xero's API uses OAuth 2.0, a standard that lets an application access an account without ever seeing the user's password. A user of your Xero organisation approves the connection, and the application is then granted access to the areas it asked for. For a private, back-end link between your own system and a single Xero organisation, Xero also offers an option called Custom Connections, which carries a monthly fee set by Xero.

Rate limits

Xero limits how often an application can call the API for each connected organisation. Its API limits page lists:

  • a concurrent limit of 5 calls in progress at one time
  • a minute limit of 60 calls per minute
  • a daily limit of 1,000 calls per day for apps on Xero's starter tier and 5,000 calls per day for higher tiers
  • an app-wide limit of 10,000 calls per minute across all connected organisations

An application that goes over a limit receives an HTTP 429 "too many requests" response and is told how long to wait before trying again. The same page notes that each organisation can connect a maximum of five uncertified apps, with no limit on certified apps.

A sensibly designed integration works within these limits by sending records in batches, fetching only what has changed, and queuing large jobs such as a first import of historical invoices.

Webhooks

Instead of asking Xero every few minutes whether anything has changed, an integration can subscribe to Xero webhooks, which are notifications Xero sends when an event occurs. Xero lists events for contacts, invoices and credit notes being created or updated, among others. The receiving system must use HTTPS and respond within 5 seconds, and if deliveries keep failing Xero retries over a 24 hour period and then disables the webhook. Your integration therefore needs monitoring, not just a one-off setup.

Size limits inside Xero itself

The limits page also says Xero is designed for volumes of up to 5,000 sales invoices and 5,000 purchase bills per month. A business with a very high number of small online orders should plan to send Xero daily summaries instead of every individual sale.

App marketplace connector or custom integration

There are two broad ways to connect a system to Xero. The first is a ready-made connector: Xero runs the Xero App Store, where apps that connect to Xero are listed, and many business software products offer their own Xero connector. The second is a custom integration written for your process.

QuestionMarketplace connectorCustom integration
How well does it fit?Fits the common case the vendor designed forBuilt around your own steps, codes and exceptions
Who maintains it?The app vendorYou or your technology partner, under a support arrangement
How is it paid for?Usually a subscription to the appA build cost plus ongoing hosting and support
What can it connect?The vendor's own product to XeroAny systems with an API, including in-house software
When does it suit?Standard sales, orders or timesheets with few special rulesUnusual workflows, several systems, or software built for you

Try the connector first if one exists for your software. Test it with real records, including awkward ones such as part payments and credit notes. A custom integration earns its cost when the connector cannot follow your process, when several systems need to agree, or when one end is custom software that no marketplace app knows about.

Single Touch Payroll and why accounting data flows matter

Payroll is the part of an accounting system where integration mistakes have regulatory consequences. Under Single Touch Payroll (STP), employers send payroll information to the Australian Taxation Office after each pay run. The ATO's page on how to report Single Touch Payroll data sets out the options: report from your existing payroll or accounting software if it is STP-enabled, choose STP-enabled payroll software, or ask a third party such as a registered tax or BAS agent or a payroll service provider to report for you. The ATO adds that if a third party reports for you, it is your obligation to make sure they do so through STP-enabled software.

For integration planning this means two things. First, the STP-enabled payroll product stays the system that reports to the ATO. A rostering or timesheet tool can feed hours into it, but should not replace it. Second, whatever feeds payroll must be accurate before the pay run, because the figures are reported as part of running it. An integration that rounds hours differently, maps an allowance to the wrong pay item or creates duplicate employees produces errors in what is reported as well as in your books.

A brief note on MYOB

The same thinking applies if your accounts are in MYOB. MYOB publishes a MYOB Business API that its developer site says works with AccountRight, Essentials and MYOB Business, with endpoints covering areas such as contacts, sales, purchases, banking and payroll. A developer has to register an application with MYOB and receive an API key before connecting. Limits and access rules differ from Xero's, so check MYOB's documentation for your product.

Checklist before you start

  • Write down the process in plain steps: what is created where, by whom, and what should happen next.
  • Decide which system is the master for each record. Customers might be owned by the CRM, invoices and payments by Xero.
  • Clean the data first: merge duplicate contacts, archive unused items, agree on naming.
  • Agree on a unique identifier to match records. Xero recommends using its ContactID to reference contacts, not the contact name.
  • Confirm account codes and tax codes with your accountant or bookkeeper.
  • Decide what happens when a sync fails: who is alerted and how the record is retried.
  • Test with realistic records outside your live accounting file before connecting the real one.
  • Limit the access the integration is given, and record who approved the connection.

Comingwave is an Australian technology company that builds business systems integrations for small and medium businesses, including connections between Xero or MYOB and CRMs, online stores and in-house software. Once the data is flowing, it can also feed data dashboards that show sales and cash position in one place. To talk through your own systems, request a quote.

Key takeaways

  • A Xero integration syncs contacts, invoices and payments so they are entered once.
  • Xero sets API rate limits per organisation; a well designed integration batches work and handles the "too many requests" response.
  • Start with a marketplace connector if one fits; choose a custom integration for unusual processes or several systems.
  • Keep an STP-enabled product as the system that reports payroll to the ATO.
  • Decide the master system for each record and clean your data before connecting anything.

Frequently asked questions

Can Xero connect directly to my CRM?

Often, yes. Many CRM products offer a ready-made Xero connector. If yours does not, or the connector does not follow your process, a custom integration can link the two through their APIs, provided the CRM has one.

What are the Xero API rate limits?

Xero's developer documentation lists, for each connected organisation, 5 calls in progress at one time, 60 calls per minute, and a daily limit of 1,000 calls for starter tier apps or 5,000 for higher tiers. Check Xero's page for the current figures.

Is a custom Xero integration better than an app from the marketplace?

Neither is better in general. A marketplace app is quicker to set up and is maintained by its vendor. A custom integration follows your exact process and can connect software that no app supports, but it needs someone to host, monitor and maintain it.

Does an integration affect Single Touch Payroll reporting?

It can. STP reports are sent from STP-enabled software, so the data flowing into payroll has to be correct before each pay run. Timesheet or rostering tools should feed your STP-enabled payroll product, not bypass it.

Need help with your business technology?

Tell us what you need. We reply within one business day.

Get a free quote