Think Build Implement Repeat
Data & Scraping

Connecting Xero to the Systems That Actually Create the Work

Last updated:

Decide which system owns what

The commonest integration mistake is treating accounting software as an operational system. It is a financial record. Your operational system — the one where jobs, orders or matters live — should own the work, and accounting should receive the financial consequence of it.

Write down who owns each field before building anything. Customer address in two systems with no owner produces a silent divergence that surfaces at the worst moment.

What is worth syncing

  • Invoices out, generated from completed work rather than retyped
  • Payments back, so the operational system knows what is settled
  • Contacts, one direction only, from the system that creates them
  • Purchase invoices in, from extraction or supplier feeds
  • Credit status, back into the operational system so sales can see it

What is not

Inventory detail, job costing granularity, and anything that would turn the accounting ledger into a reporting warehouse. Accounting packages are not designed for it and performance suffers.

If you find yourself creating tracking categories to represent operational concepts, the integration has gone too far. Report from the operational system or a warehouse, not from the ledger.

The traps

  1. Duplicate invoices from retries without idempotency. Every push needs a unique reference the accounting system enforces.
  2. Tax codes applied inconsistently between systems, which produces returns that need manual correction.
  3. Rounding, particularly with per-unit pricing and discounts. Agree where rounding happens and apply it once.
  4. Rate limits during month-end bulk pushes, which is exactly when you least want a queue.
  5. Contact matching — the same customer created twice under slightly different names.

Design for reconciliation

Every synced record should carry the identifier from the other system, both ways. When something is questioned, you want to trace it in seconds rather than search by amount and date.

Add a daily reconciliation check: counts and totals compared between systems, with an alert on any difference. It is cheap and it catches problems the week they start.

Frequently asked questions

Should we use an off-the-shelf connector?

For common pairings, yes — it is usually cheaper and adequately maintained. Custom integration earns its place when your operational system is bespoke or the mapping needs business logic.

How often should it sync?

For most businesses, near real-time for invoices and payments, and hourly or daily is fine for the rest. Real-time everything costs more and rarely changes a decision.

What about multi-currency?

Decide which system owns the exchange rate and apply it in one place. Currency handled independently in two systems produces small, persistent discrepancies that consume finance time.

What does an integration cost?

A one-way invoice and payment sync with reconciliation typically runs £6,000–£15,000, depending on how clean the operational side is.

Keep reading

Retyping invoices into your accounts package?

Tell us which system creates the work. We will scope a one-way sync and the reconciliation that keeps it honest.

Book a free 30-minute call Get a project estimate WhatsApp us

Related services

What we build for problems like this one

Web ScrapingData Science