What does a Xero integration developer actually build?
A Xero integration developer builds software that reads from and writes to Xero on your behalf: creating contacts, raising invoices, recording payments, pulling reports. The work sits between your accountant, who knows how the numbers should land, and your other systems, which know what was sold.
In a UK small business the pain usually looks like this. Orders come in on the website, jobs are logged in a spreadsheet or CRM, and someone spends Monday morning typing them into Xero. Mistakes creep in: a zero-rated item posted at 20%, a customer created twice, a refund forgotten. Month end becomes a hunt.
The developer's job is to remove the typing and keep the accuracy. That means understanding the source data, agreeing a mapping with your accountant (which account codes, which tax rates, which tracking categories), writing the code, handling failures, and leaving you with a log that shows what moved and when. Good integration work is mostly careful plumbing, not clever code.
When is an off-the-shelf Xero app enough?
An existing connector is enough when your platform is popular, your products fall into one or two VAT treatments, and you are happy with how the app summarises or itemises sales. Many Shopify and WooCommerce stores are in that position.
Test it properly before you decide. Run a week of real orders through a trial, including a refund, a discounted order, an order with shipping, a zero-rated item and an overseas customer. Then ask your accountant to look at the result in Xero. If everything lands where they want it, you have saved yourself a build.
A custom integration becomes worth it when the connector forces workarounds every month: tax codes corrected by hand, gift cards or deposits posted wrongly, sales from two channels mixed together, or a bespoke system that no app supports at all. At that point the monthly clean-up time is the real cost, and it usually outweighs a one-off build.
Stay with an app if…
the trial week reconciles cleanly, your accountant is happy, and the subscription is less than the time it saves.
Hire a Xero integration developer if…
your data is unusual, your platform has no connector, or staff still fix the app's output every period.
The Xero API, OAuth apps and Custom Connections explained
Xero exposes its data through APIs, and every request goes through its OAuth 2.0 gateway with an access token. The official Xero Node SDK covers the Accounting API alongside assets, bank feeds, files, projects and regional payroll APIs including the UK one.
There are two ways to connect. A standard OAuth app asks a Xero user to log in and approve access, which suits tools used by several organisations or where people connect their own Xero. A Custom Connection, which the SDK documentation describes as a Xero premium option for machine-to-machine integrations with a single organisation, uses the client credentials grant, so a background job can run without anyone logging in.
For most in-house integrations, where one UK business wants its own systems talking to its own Xero, a Custom Connection is the neater fit: no login pop-ups, no refresh-token juggling in the same way, and access scoped to one organisation. Because it is a premium option, check the current terms and any charge with Xero before we build on it. We explain both routes in the quote and let you and your accountant choose.
Syncing Shopify or WooCommerce orders to Xero with the correct VAT
Map each product's tax treatment to a Xero tax rate before any order moves, and send line amounts the way your shop calculated them, VAT inclusive or exclusive, so pennies do not drift. Most shop-to-Xero problems come from skipping that mapping step.
UK shops often mix VAT treatments in one basket: standard-rated goods at 20%, zero-rated items such as most children's clothing or books, reduced-rate items at 5%, and shipping that follows the goods. Discounts spread across lines, gift cards that are not a sale until redeemed, and refunds that must hit the same accounts as the original sale all need rules.
We agree two decisions with your accountant. First, invoice per order or a daily summary: per-order gives traceability, summaries keep Xero lighter for high-volume stores. Second, where payment processor fees go, usually a separate expense line so gross sales stay honest.
- Product or collection → Xero item code and sales account
- Tax class → Xero tax rate (standard, reduced, zero-rated, exempt, outside scope)
- Shipping → line with the tax treatment your accountant specifies
- Discounts → line-level or separate discount line, agreed upfront
- Gift cards → liability account on sale, revenue on redemption
- Refunds → credit notes linked to the original invoice
If you are still choosing the shop platform itself, the UK ecommerce website cost guide covers the build side.
Automating invoices in Xero from a CRM, job system or booking tool
Trigger the invoice from the moment the work is genuinely billable (deal won, job signed off, booking completed) and create it in Xero with the right contact, items, tracking and due date. Leave it as a draft if a human should check it, or approve and email it straight away if the rules are clear.
Contact matching is the part people underestimate. “Smith & Sons Ltd”, “Smith and Sons” and “Smith & Sons (Leeds)” should be one Xero contact. We match on a stable key (a customer ID stored in both systems) rather than names, and we clean duplicates once before switching the sync on.
Tracking categories let you see revenue by branch, department or job type in Xero's reports. If your CRM already knows that a job belongs to the Manchester team, pass it through. Recurring work can use Xero's repeating invoices, or the integration can raise each invoice on schedule from your own system if pricing changes month to month.
For businesses running their pipeline in a custom tool, see our bespoke CRM development page; a CRM designed with Xero in mind makes this far simpler.
How do you automate payment reconciliation in Xero?
Record each payment against its invoice as soon as your system knows about it, and post processor payouts through a clearing account so the bank line in Xero matches one transfer, not dozens of orders. Reconciliation then becomes confirming matches instead of searching for them.
The mess usually comes from payouts. A card processor sends one bank transfer covering many orders, minus fees and refunds. Xero sees a single figure that matches no invoice. The fix is a clearing account: each order's payment is recorded into it, fees are recorded as an expense out of it, and the payout transfer moves the net amount to the bank. When the bank feed line arrives, it matches the transfer exactly.
For invoice-based businesses paid by bank transfer, matching relies on references. We make invoice numbers appear on invoices and in payment instructions, so the bank line carries them. Where your system receives a payment notification, the integration marks the invoice paid in Xero immediately, and your credit control stops chasing people who have already paid.
Keeping MTD for VAT digital links intact when you integrate Xero
An API integration keeps the Making Tax Digital chain intact, because data moves between programs electronically. Manually retyping or copying and pasting figures into Xero does not, which is one more reason to automate.
HMRC's VAT Notice 700/22 says Making Tax Digital for VAT requires all VAT-registered businesses to keep digital records and file returns using software. It defines a digital link as a transfer or exchange of data made electronically between software programs, and lists API transfer, automated data transfer and XML or CSV import and export as acceptable. It also states that HMRC does not consider cut and paste or copy and paste to be a digital link.
So when your shop, CRM or bespoke system feeds Xero through the API, that step in the chain is sound. The weak points are elsewhere: a staff member keying a spreadsheet total into Xero, or adjusting figures in a tool that is not linked. We map the whole path from sale to VAT return during scoping and flag any manual step. How your returns are prepared remains between you and your accountant; we make sure the software side is linked.
Rate limits, webhooks and what happens when a sync fails
Every Xero integration will meet a failure sooner or later: an expired connection, a rate limit, a contact archived by someone in the office. A good build expects this, retries sensibly, never creates duplicates, and tells a human when it needs help.
Xero applies API rate limits per organisation and per app, so a sync that fires one request per order line will stall on a busy day. We batch where the API allows, queue work, and back off when Xero asks us to. Where Xero offers webhooks for the objects you care about, we use them to react to changes instead of polling constantly.
Duplicates are the worst failure because they corrupt the books quietly. Each record we send carries a reference back to its source (order number, job ID), and before creating anything the integration checks whether it already exists. A daily summary email or dashboard lists what synced, what failed and why, in plain English your bookkeeper can act on.
- Queue and retry with back-off instead of failing silently
- Source reference on every invoice to block duplicates
- Alerts to a named person when the connection needs re-authorising
- Readable sync log kept for your accountant
Should a new Xero integration backfill historic orders?
Usually not all of them. Start the sync from a clean cut-off date your accountant chooses, often the start of a VAT period, and leave earlier records as they are, whether they were entered by hand or imported from spreadsheets.
Backfilling years of orders sounds tidy but tends to create trouble. Old invoices may already exist in Xero from manual entry, so a bulk import risks doubles. Past VAT returns have been filed on the figures already in the books, and changing the underlying records after the event is exactly what your accountant will not want. Historic contacts are often the messiest data you own.
There are sensible exceptions. Open invoices that customers still owe can be brought across so credit control works from one place. A one-off import of customers with a stable ID helps contact matching from day one. And if a previous connector posted a period wrongly, your accountant may ask for targeted corrections, which we script and log line by line rather than doing by hand.
Whatever you decide, write it into the mapping document: the cut-off date, what was imported, and how it was checked. That note saves a long conversation at year end.
Keeping Xero credentials and financial data secure
Never hand a developer your Xero login. Connect through an app or Custom Connection you authorise, with only the scopes the job needs, and keep the credentials in your own hosting account where you can rotate or revoke them.
Financial data is personal data too: customer names, addresses and what they bought. We store tokens and client secrets in the hosting provider's secrets store, not in code. The integration runs on hosting in your name, logs avoid printing full customer details, and access to the server is limited to the people who need it.
If a staff member or developer leaves, removing their access should take minutes. That is only true if nothing depends on their personal accounts. We set everything up under your business's accounts from the start, and the handover includes a one-page note on how to revoke and rotate each credential.
How much does a Xero integration developer cost?
A focused one-way sync with us starts at US$600; a bespoke integration or system that works with Xero starts at US$900. Rates elsewhere vary widely, so compare quotes by what they include rather than by headline figure.
What drives the price: how many types of record move (invoices only, or contacts, payments, credit notes and items too), whether the sync is one-way or two-way, the number of VAT treatments, multi-currency, how dirty the historic data is, and how often the sync must run. A nightly summary is simpler than real-time two-way sync with conflict handling.
Also budget for the running side. Hosting for the integration is small but not zero and billed to you by the provider. Xero's own subscription and any API charges are between you and Xero. Our care plan from US$120/mo covers monitoring, token and API version updates after the two free months. For a wider view of custom software budgets, see bespoke software development cost.
How to choose a Xero integration developer in the UK
Pick someone who asks about your accounts before your tech stack. The first conversation should cover VAT treatments, account codes, how refunds work and what your accountant wants to see, not which programming language they like.
Ask how they prevent duplicates
A clear answer involves a source reference on each record and a check before create. Vague answers mean you will find doubles at month end.
Ask who approves the mapping
The answer should be your accountant or bookkeeper, in writing, before code is written.
Ask where the code and credentials live
In your repository and hosting account, not the developer's. You should be able to hand the integration to someone else.
Ask what you see when it fails
A log or alert in plain English, sent to a named person, with a way to re-run failed items.
Ask whether an existing app would do
An honest developer will sometimes tell you not to hire them.
Working with a Xero integration developer in India from the UK
The time difference helps more than people expect. India is four and a half hours ahead in British Summer Time and five and a half in winter, so a sync issue flagged at 9am is looked at in our afternoon, and overnight test runs are checked before your working day starts. We answer on WhatsApp seven days a week.
Quotes and invoices come from India in USD. UK clients usually pay from a GBP account through Wise, or by bank wire or PayPal, in milestones set out in the written quote. As an overseas supplier we do not charge UK VAT; how that is treated in your books is a question for your accountant.
First week
Call with you and ideally your accountant, access to a Xero demo company or a copy of real data, sample records from the source system, and a written field-by-field mapping for sign-off.
Second week
Sync built against the demo company, test runs with real edge cases (refunds, zero-rated lines, overseas customers), results reviewed by your bookkeeper before touching live books.
We never need to visit your office. For background on working this way, see outsourcing development to India.
Worked example: a Xero integration for a Leicester trade supplier
Imagine a hypothetical trade supplier in Leicester selling packaging to cafés. Trade customers order through a WooCommerce store with account pricing, some pay by card and some on 30-day terms, and a bookkeeper spends two days a month matching payments and fixing VAT codes. This shows how we would scope it; it is not a client story.
Discovery shows three issues: card orders and account orders are mixed in one sales account, a few zero-rated lines are being posted at the standard rate by the current connector, and card payouts never match the bank line. The accountant signs off a mapping: separate sales accounts by channel, tax rate by product class, and a clearing account for card payouts with fees posted as an expense.
The build: account orders become approved Xero invoices with the customer's terms; card orders post as paid invoices into the clearing account; a daily job records payout transfers and fees. Duplicate protection uses the WooCommerce order number. Failed items are emailed to the bookkeeper each morning.
Estimate: a one-way sync of this shape sits in the automation plan from US$600, around three to four weeks including testing against a Xero demo company. The measure of success is simple: month end without retyping.
Red flags when hiring a Xero developer
Most integration disasters are visible in the first conversation. Walk away if you hear any of these.
- “Just give me your Xero login and I'll set it up”
- No questions about VAT treatments, refunds or account codes
- Testing planned directly on your live Xero organisation
- Code and hosting kept on the developer's own accounts
- No plan for duplicates, retries or failure alerts
- Offers tax or VAT advice instead of deferring to your accountant
A developer builds what your accountant designs. If you need both roles, hire both.
Handover checklist for a finished Xero integration
Before you sign off, make sure you could keep the integration running, or hand it to someone else, without calling us. Tick each of these.
- Signed mapping document: accounts, tax rates, tracking categories
- Repository in your name with a short README
- Hosting and secrets in your account; credentials listed with how to rotate them
- Sync log and failure alerts going to a named person
- Test evidence: refund, zero-rated line, overseas order, discount
- Duplicate protection demonstrated
- Your accountant has reviewed a month of synced data
New builds get two months of free fixes; after that, care is optional from US$120/mo. Ready to scope yours? Send us a note describing where your sales start and how they reach Xero today.