Automation
Xero Integration: Connecting Xero to Your CRM and Other Systems
Is Xero joined to your CRM? A Xero integration connects Xero to another system so that invoices, contacts and payments move between them without anyone retyping them. You have three routes: an app from the Xero App Store, a no-code tool such as Zapier or Make, or a custom integration built on the Xero API. Check the App Store first. Xero says it lists hundreds of apps, and a listed app that moves the right records in the right direction is usually the cheapest and quickest route.
A custom Xero API integration earns its cost when the logic spans several systems, the volume is high, or nothing listed fits the way you work. With us, connecting two systems starts from £5,000 and a business-wide integration from £12,000, at a fixed price agreed before work starts. This guide covers what to connect Xero to, how to choose a route, and what a custom build involves and costs. It then covers the Xero API limits, the pitfalls that catch teams out and a short section on Sage.
Key takeaways
- Start with the Xero App Store. Xero says it lists hundreds of apps, including CRM apps, and a listed app that moves the right records in the right direction is usually the cheapest route.
- Use a no-code tool when both sides have connectors and the logic is a simple trigger and action. Build a custom integration when the logic spans several systems, the volume is high or you need an audit trail.
- With CodeLeap, connecting two systems starts from £5,000 and a business-wide integration from £12,000, with support from £400 a month after go-live.
- Xero allows an app 60 calls a minute per organisation, and 1,000 calls a day on its starter tier or 5,000 on higher tiers. A good integration batches its calls and backs off when Xero tells it to.
- Most Xero integration problems are data problems: duplicate contacts, duplicate invoices after a retry, tax treatment and no agreed source of truth. Settle those before anyone writes code.
What can you connect Xero to?
Xero is the finance end of the stack, so the useful question is which system creates the money events. Four groups are the usual candidates.
- CRM. The usual first flow is a won deal raising an invoice in Xero, with the payment status flowing back so sales can see who has paid.
- E-commerce and booking systems. Orders or bookings become sales invoices, and payments are matched to them afterwards.
- Job and project systems. A completed job or an approved timesheet becomes an invoice, so billing does not wait for someone to key it in.
- Bespoke platforms. A customer portal or internal system you own. Nothing in the App Store knows your data model, so the Xero side is built against the API.
For an international events group, we connected Pipedrive, SmartDocs and Xero without replacing any of them. When a contract is signed, the CRM updates and Xero raises the sales invoice automatically. That is around 500 invoices a month that no longer get typed by hand, with the flow running from the CRM to the accounts.
If your problem is supplier bills arriving in Xero, that is a capture problem before it is an integration problem, and our accounts payable automation guide compares the tools. Our API integration guide covers the general mechanics of connecting any two systems, including webhooks.
Xero App Store, no-code tool or custom API build?
The cheapest route that does the job is usually the right one. Work down the table in order and stop at the first row that fits.
| Route | Wins when | Watch for |
|---|---|---|
| App Store app | Your CRM or booking system has a listing that moves the records you need | It syncs what its maker chose, in the direction they chose |
| No-code tool | Both sides have connectors and the logic is a simple trigger and action | Per-task billing, and a flow that quietly becomes critical |
| Custom Xero API build | The logic spans systems, volumes are high or nothing listed fits | It needs a proper build and someone to look after it |
Xero’s own page says that if existing apps cannot solve a problem, you can build one with its open API or commission a certified Xero developer (Xero). Before you do, search the App Store for the name of your CRM or booking system. For each listing, check which records it syncs, in which direction, and what it does when a record already exists or a call fails. Test it on a copy of your data before you commit.
A no-code tool is the middle step. Check that it has a Xero connector and that the connector can write the records you need as well as read them. Our own systems integration page takes the same position: if two of your systems already sync natively, we’ll tell you to switch that on.
What does a Xero API integration involve?
A custom integration is code that talks to Xero’s API for you, with rules for what to send, when, and what happens when something fails. For one company there are two ways to connect it to Xero.
A standard app connection. An authorised user approves the integration on Xero’s consent screen. New apps start on Xero’s Starter tier, which allows 5 connections. Xero also limits each organisation to five uncertified apps, so count the apps already connected (Xero). An integration for one organisation needs one connection.
A Custom Connection. Xero describes this as a premium option that gives an integration access to a single organisation. It needs an additional monthly subscription and is available to UK organisations. It does not count towards the five-app limit, and you can build and test it against Xero’s Demo Company for free (Xero).
Which one fits depends on how many organisations the integration serves and how many apps yours already has. Ask your integrator to say in writing which they are using and who pays for any Xero subscription.
Whichever connection you use, the work has the same shape.
- Map one flow first. Name the trigger, the fields that move and the direction, such as a signed contract creating a sales invoice. Add the next flow only when the first is live.
- Build the matching rules. Decide how a record in one system is recognised in the other. The pitfalls below show why this step decides whether you get duplicates.
- Make every call safe to repeat. A retry must never create a second invoice.
- Test with messy data. Use real customers with missing postcodes, odd characters in names and part-paid invoices.
- Alert a named person. Our business-wide integration includes automated alerts when a sync fails, and someone must receive them.
- Go live in stages. We delivered the events group integration in three phases.
How much does a Xero integration cost?
With us, connecting two systems you already use, such as your CRM and Xero, starts from £5,000. A business-wide integration across every core system starts from £12,000. Each price is fixed and agreed before work starts, and you pay in milestones as each stage is delivered. You can cancel a build within the first 21 days and get your money back in full. All code and IP are yours once the work is delivered and paid for. After go-live, support starts from £400 a month.
For a larger estate with an ERP and several other systems, enterprise software integration starts with an integration audit and plan from £4,000. The integration build starts from £10,000.
The Xero side has its own costs. Xero’s developer pricing took effect on 2 March 2026 and is listed in Australian dollars, excluding tax (Xero Developer). At the time of writing (October 2026), the Starter plan has no monthly fee, allows up to 5 connections and gives 1,000 calls a day per organisation. The Core plan is AUD 35 a month. It allows up to 50 connections, gives 5,000 calls a day per organisation and includes 10 GB of data downloaded from Xero each month. Extra data is AUD 2.40 per GB. A Custom Connection needs its own monthly subscription, so check its price with Xero before you budget. App Store apps and your other system’s plans are priced by their vendors.
What moves the price of a custom build:
- How many systems and flows. A CRM-to-Xero invoice flow is one job. A booking system or a second Xero organisation adds its own mappings, tests and failure cases.
- Direction. Sending invoices into Xero is simpler than also writing payments and contact changes back to the CRM, which needs a rule for when both sides edit a record.
- Data quality. Duplicates already sitting in your CRM or in Xero need cleaning before they can be matched.
- History. Copying years of past invoices is a separate job from syncing new ones.
- Volume. Near Xero’s daily limit, the build needs batching, a queue and back-off that follows the Retry-After header.
Xero API limits and what they mean for your build
Xero applies its limits to each organisation, which it calls a tenant. An app may have 5 calls in progress at once and make 60 calls a minute. The daily limit is 1,000 calls on the starter tier and 5,000 on higher tiers. A separate limit of 10,000 calls a minute applies to the app across all its organisations (Xero).
Exceed a limit and Xero returns an HTTP 429 response. For the minute and daily limits it also sends a Retry-After header, and Xero says to use that header to know when you can start making calls again. A well-built integration queues its calls, honours the header and carries on instead of failing.
Batching helps. Xero says you can create more than one invoice in a single call, and that about 50 per request is practical (Xero).
Two illustrations show the scale:
- Day-to-day. Raising 500 invoices a month, one call each, across 22 working days is roughly 23 calls a day. That is a small fraction of the 1,000 a day on the starter tier.
- Back-fill. Reading 30,000 historic invoices with their line items out of Xero, for example into a CRM, is a different job. Xero says its pagination returns line items for 100 invoices at a time (Xero), so that is 300 calls (30,000 divided by 100). At 60 calls a minute it is at least five minutes of calling and 30% of a starter day’s allowance, so run it as a scheduled job. Writing them into Xero instead, at about 50 per request, takes about 600 calls, or 60% of a starter day.
Xero also says it is designed for up to 5,000 sales invoices and 5,000 purchase bills a month (Xero). The figure depends on how often you invoice, how much amounts vary and how often you report sales tax. A business well beyond that should talk to Xero before building anything.
What goes wrong with Xero integrations?
These problems appear after go-live, so settle them at the start. For polling, webhooks and alerting in general, see our API integration guide.
Duplicate contacts. Xero’s contacts documentation recommends that developers use the ContactID to reference a contact, and not rely on the contact name. It warns that the name may stop being a unique field in future. Xero also has a ContactNumber field for an identifier from another system, and its own example is a CRM’s customer number (Xero). Store the CRM’s ID in Xero and Xero’s ContactID in the CRM, and match on those, never on a name or an email address.
Duplicate invoices after a retry. A network fault after Xero has created an invoice, but before your system hears about it, is how two invoices appear. Xero supports an Idempotency-Key header on POST, PUT and PATCH requests so that a repeated request returns the first response. It stores keys for only 6 minutes (Xero). The integration should therefore also record the Xero invoice ID against the deal or order, and check for it before creating anything.
Tracking categories. A Xero organisation can have at most two active tracking categories, and four in total including archived ones. Xero recommends a soft limit of 100 options per category because more can slow down reports (Xero). If your CRM has departments, regions, projects and product lines, agree with finance which two matter before you build.
Tax and rounding. Xero treats line amounts as exclusive of tax unless the request says otherwise. It takes the tax treatment from the account code unless you override it with a tax type. It rounds unit amounts to two decimal places by default, with four available on request (Xero). If your CRM stores prices including VAT, or quotes at four decimal places, an invoice in Xero can differ from the quote unless the mapping is deliberate. Have your accountant confirm the VAT treatment of each product line before go-live. This is general information, not tax advice.
No agreed source of truth. When two systems can both edit a record, they will overwrite each other. Decide who owns what before you build. This is the default we start from:
| Record | Usually owned by | Why |
|---|---|---|
| Deal, stage, contract | The CRM | Sales works there |
| Invoice, tax, payment status | Xero | Finance reports from it |
| Customer name and address | One system, chosen up front | Two editors overwrite each other |
Change these where your business differs, and write the decision down.
What about Sage integration?
Searches for Sage integration usually mean the same job on a different ledger. Sage’s developer portal has separate sections for Sage Accounting and Sage Intacct. The accounting section lists the Sage Business Cloud Accounting v3.1 API, says versions 1 and 2 are deprecated, and includes a guide to connecting through Zapier. The Intacct section lists a REST API.
The patterns above carry over. Pick a source of truth for each record, match on stored IDs rather than names, make retries safe and alert someone on failure. Authentication, limits and data models differ, so read the current documentation for your Sage product before you scope the work.
In our business process automation work, invoicing, payment chasing and reconciliation in Xero, Sage or QuickBooks are common first projects. If the job is wider than a connection, start with our business process automation service.
A sensible next step
Name the two systems you want connected and the one flow that costs you the most time, such as a signed contract becoming an invoice in Xero. From that we can tell you whether an App Store app, a no-code tool or a custom build fits, and if an app will do the job, we will say so.
For two systems, start with our systems integration service, from £5,000. For an ERP and several other systems, our enterprise software integration work begins with an audit and plan from £4,000.
Frequently asked questions
What is Xero API integration?
Xero API integration is software that connects Xero to another system through the API Xero publishes for other software. It can create contacts and invoices in Xero, and read payment status back into a CRM, following rules you define. Check the Xero App Store first, because a listed app is often cheaper. A custom build suits logic that spans several systems, high volumes or a platform nothing listed supports.
Does Xero integrate with my CRM?
Often yes. Xero says its App Store has hundreds of apps, and it has a category for CRM apps. Search the store for your CRM's name, then check which records each listing syncs, in which direction and what happens when a call fails. If nothing fits, a no-code tool or a custom integration through the Xero API can do the job. With us, connecting two systems starts from £5,000.
How much does a Xero integration cost?
An App Store app is a subscription priced by its maker. A custom integration with us starts from £5,000 for two systems and from £12,000 business-wide, at a fixed price agreed before work starts, with support from £400 a month. Xero's own developer plans start with a Starter plan at no monthly fee, and Core is listed at AUD 35 a month excluding tax, at the time of writing (October 2026).
What are the Xero API rate limits?
For each organisation, Xero allows 5 calls in progress at once, 60 calls a minute and a daily limit of 1,000 calls on its starter tier or 5,000 on higher tiers. Each app also has a limit of 10,000 calls a minute across all organisations. Going over returns an HTTP 429 response, and the Retry-After header says how long to wait. Batching several invoices into one call helps.
How is a Sage integration different from a Xero integration?
The job is the same: decide which system owns each record, match on stored IDs and make retries safe. The interfaces differ. Sage's developer portal has separate sections for Sage Accounting and Sage Intacct, each with its own API and documentation. Check which product you run and read its current limits before you scope the work.
Want to build something like this?
Book a free 20-minute consultation and we'll help you find where automation pays off.