Integration · Xero

Xero kept in step with the system that raises the invoices.

Invoices, payments and contacts flow between your system and Xero, so nobody retypes a job into the accounts and your accountant works from what was really billed.

Xero is cloud accounting software with a public API. A custom system and Xero do different jobs. Your system knows the customer, the job, the quote and the delivery. Xero is where the accounts, bank feeds and returns live. The integration lets each do its job and passes the money facts between them.

Done well, an invoice is raised once, in your system, and appears in Xero as a matching invoice against the same contact. A payment recorded in Xero shows up on the invoice in your system. Staff work in one place, and the accountant works in the other. This sits naturally next to quoting and invoicing in a custom system.

What you can automate

Xero, wired into your system.

Invoices pushed to Xero

When an invoice is approved in your system, a matching sales invoice is created in Xero against the right contact, with the same lines, VAT treatment and reference. The accountant never asks for a spreadsheet of what you billed.

Payments pulled back

A payment recorded in Xero, through the bank feed or by hand, closes the invoice in your system and stops the overdue chasers. Customers stop receiving a reminder for an invoice they paid last week.

Contacts kept in step

A new client created in the CRM becomes a Xero contact once, and an address change is made in one place. Duplicates are matched, not multiplied.

Credit notes and corrections

A refund or correction raised in your system produces a credit note in Xero, rather than someone editing a posted invoice and breaking the audit trail.

Supplier bills and expenses

Bills or receipts captured in your system can be pushed to Xero as draft bills for the accountant to code and approve, which keeps the judgement with the person who owns it.

A reconciliation view

A screen that lists what your system thinks is billed and paid against what Xero holds, with the differences highlighted. When the two disagree, you see it the same day.

How it’s built

Connected, then watched.

  1. 01
    Agree who owns what

    For each type of record, decide which side is the master. Typically invoices and contacts start in your system and payments arrive from Xero. Conflict rules are decided up front, so two edits never silently overwrite each other.

  2. 02
    Connect with the least access

    You authorise the connection from your own Xero login using OAuth. Xero splits access into scopes for areas such as invoices, payments and contacts, so the connection asks only for what the sync needs, and you can revoke it at any time.

  3. 03
    Sync, within Xero’s limits

    Xero limits how many calls an app can make per organisation, per minute and per day. The sync batches its calls, backs off when told to, and uses Xero’s notifications for changed invoices and contacts where available, with a scheduled pass to catch anything missed.

  4. 04
    Monitor and reconcile

    Failed pushes are queued and retried rather than dropped, and an alert goes out if something stays stuck. A regular reconciliation compares both sides, so drift shows up as a line on a report, not as a surprise at year end.

Worth knowing
  • Xero is only the right fit if your accountant works in it. Your accountant may work in a different package. If so, the same pattern works with any accounting tool that has an API, so check with your accountant first and tell me before the quote.
  • Your system and Xero have to agree on VAT codes, account codes and currencies. Your accountant decides the accounting treatment. I build the mapping to match it, and I don’t replace their judgement.
  • The Xero subscription, and any extra charges Xero makes, are billed to you by Xero. API access and limits are set by Xero and can change, so the sync is built to be patient rather than fast.
Proof

Built before, running now.

I haven’t built a Xero connection for a named client, and none is published here. What I describe rests on Xero’s public API and on the same invoice-sync building blocks that run in Storex.

FAQ

Questions, answered.

Do I need a custom system if I already use Xero?

Not if Xero covers how you quote, book and deliver. A custom system makes sense when the work before the invoice (quotes, jobs, stock, client portals) lives in spreadsheets, and the accounts are the only tidy part.

Will my accountant be able to see everything?

Yes. They keep working in Xero, where the synced invoices, payments and contacts appear as usual. They also get a reconciliation view if they want one.

Can you move my historic invoices into the new system?

Usually, yes, checked against the source before you switch. See my data migration guide for how that is done and what can go wrong.

How long does an accounting connection take?

The quote builder puts accounting software at roughly 20 to 40 build hours, on top of the 30 to 50 hours of shared groundwork. The longer end is for two-way payment sync and credit notes.

What if my accountant uses something other than Xero?

Tell me which one. If it has a public API, the same design works. If it doesn’t, a scheduled export in the format your accountant already imports is often the sensible answer.

Start here

Get a fixed quote.

The quote builder opens with Xero already selected. Add the rest of your system and I reply with a fixed quote.

Logo