Custom Xero integrations
From approved timesheets to Xero sales and self-bill invoices, with payments reconciled back into your system.
We build custom Xero integrations connecting Xero to your own software. Our integrations handle two-way money sync, self-billing VAT requirements and payment reconciliation for UK recruitment and SaaS businesses.
What we build with Xero
- Self-billing and sales invoice creation in Xero
- Payment status polling from Xero
- Custom Connections and multi-org Xero apps
- Idempotent sync within Xero rate limits
- Bullhorn and FreeAgent links beside Xero
- Full source code and IP ownership
You need a Xero developer who can make Xero talk to your own systems. We build custom Xero integrations that generate sales and self-bill invoices from approved timesheets and reconcile payments back. The Infinitemp platform we built for NLG RPO, described in the Infinitemp case study, created all of the client sales invoices and the self-bill invoices in Xero, then synced payments from Xero into Infinitemp.
Why self-billing and two-way money sync is hard
One timesheet, two directions of money
An approved recruitment timesheet confirms work done by a temporary worker and the fee owed by the client. That single approval must drive two financial documents in Xero. The first is a sales invoice to the client for the fee, which is accounts receivable. The second is a self-billed invoice to the supplier or worker for the payable amount, recorded as a bill under accounts payable. Both must stay in step with the same source data.
HMRC’s VAT Notice 700/62 sets the rules for self-billing. The agreement must be in writing with a start and expiry date. The supplier agrees not to issue its own VAT invoices for the covered supplies and accepts the self-billed documents. Each self-billed invoice must show the supplier’s name, address and VAT registration number plus the details of a full VAT invoice, including the tax point. We design outputs that meet these requirements.
No payment webhooks: polling and matching
Xero’s developer documentation states that webhooks exist for contacts, credit notes, invoices, overpayments, prepayments and subscriptions, but there are no payment or bank transaction webhooks. To reflect settled payments in your own software you must poll Xero and match returned statuses. This matching must account for part payments, overpayments and credit notes, because real client behaviour is rarely a single clean settlement.
We design the sync to store the Xero invoice ID against each source record and poll payment status on a schedule, so every part payment, overpayment and credit note lands against the right timesheet. Volume matters: Xero’s developer documentation sets per organisation rate limits of 5 concurrent calls, 60 calls a minute and 1,000 calls a day on the Starter tier or 5,000 on higher tiers. Breaches return HTTP 429 with a Retry-After header.
Avoiding duplicate invoices on retry
Network failures happen. If a request to create an invoice times out, a naive client retries and may create a duplicate. Xero’s developer documentation says the Idempotency-Key header is supported on POST, PUT and PATCH, with keys held for 6 minutes. We generate a key per logical operation so a retried request never creates a second invoice. This is part of building sync that is safe under real conditions.
Token handling so the link does not die
Access tokens last 30 minutes per Xero’s developer documentation. Refresh tokens last 60 days and are only issued with the offline_access scope, with each refresh returning a new refresh token. If you ignore this, the integration silently stops after 60 days. We store tokens securely, refresh before expiry, and alert if a refresh fails. Clients receive full infrastructure access at handover.
Custom Connection or multi-organisation app
You must choose the right connection model before building. A Custom Connection uses the client credentials grant to reach a single Xero organisation. Xero’s developer documentation notes it costs £5 a month ex VAT per connection in the UK, bought by the Xero customer. This suits a business linking Xero to its own back office, such as the Infinitemp example.
If you are building a product that your customers connect to their own Xero accounts, you need a multi-organisation app using the authorisation code or PKCE flow. Since Xero’s 2 March 2026 developer pricing, five plans exist with connection caps of 5, 50, 1,000, 10,000 and unlimited. Custom Connections and bespoke integrations for a single client are excluded from that model. We help you pick the tier that matches your go-to-market.
Designing for rate limits and batch size
When you sync thousands of timesheet lines each week, call volume becomes a constraint. Xero’s developer documentation recommends batches of up to 50 elements per request, with a maximum request size of 10MB. The app-wide limit is 10,000 calls a minute, but per organisation caps are the real bound for most builds. We shape the sync to push only changed records, batch aggressively, and back off on 429 responses.
Our founder, Andy Jones, has built and sold businesses himself and has a background in recruitment and umbrella payroll software. We also designed and built Octopaye, HMRC-recognised payroll software for the temporary recruitment sector.
Beyond Xero: other system links
Many recruitment operations run Bullhorn for candidate tracking and FreeAgent for accounts. We build integrations with Bullhorn, Salesforce, FreeAgent and Xero, and develop on Node.js, Angular and AWS. If your stack includes Bullhorn, see our Bullhorn developers page. For FreeAgent, the FreeAgent developers page explains our approach. The patterns of idempotency, polling and rate-limit awareness apply across all of them.
Getting started with your integration
A typical custom software project with Xero connectivity starts from £15,000, in line with our custom software floor. Ongoing work with our team runs at UK agency rates of £75 to £150 per hour. We scope the sync, agree the connection model, and deliver full source with documentation. Clients own 100% of the code and IP we write.
If you want to discuss a Xero link to your timesheet, invoicing or portal system, please contact us. You can also read our guide to API integration or explore our business application development services to see how we frame these builds.
Xero development FAQs
What does a custom Xero integration cost?
Custom software development with Xero connectivity starts from £15,000, matching our custom software floor. UK agency rates for further work run £75 to £150 per hour. Xero's developer documentation states a Custom Connection costs £5 a month ex VAT per organisation, paid by the Xero customer. Multi-organisation apps fall under Xero's 2026 developer pricing plans with connection caps. Your total depends on sync volume and complexity.
Can Xero webhooks tell me when a payment is made?
No. Xero's developer documentation says webhooks exist for contacts, credit notes, invoices, overpayments, prepayments and subscriptions, but there are no payment or bank transaction webhooks. To reflect settled payments in your own system you must poll Xero and match returned statuses, dealing with part payments, overpayments and credit notes. We design sync processes that handle this polling and reconciliation without missing updates.
Do you build multi-organisation Xero apps?
Yes. We build both single organisation Custom Connections and multi-organisation apps using the authorisation code flow. Xero's developer documentation notes a Custom Connection reaches one organisation and costs the customer £5 a month. A multi-organisation app connects many customers' Xero accounts and, since Xero's 2 March 2026 pricing, requires a paid plan with connection caps. We advise on the right model for your product.
Will I own the integration code you write?
Yes. Clients own 100% of the code and IP we write, with full source, documentation and infrastructure access handed over. This applies to Xero integrations and any connected bespoke software we develop. You are not locked into us for changes and can host or extend the work as you see fit. Clear ownership is part of our standard engagement from the first sprint.
Let’s build something that scales
Tell us what you’re building, your timeline, and the number you want to move. We’ll come back with a straight answer.