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
- Duplicate invoices from retries without idempotency. Every push needs a unique reference the accounting system enforces.
- Tax codes applied inconsistently between systems, which produces returns that need manual correction.
- Rounding, particularly with per-unit pricing and discounts. Agree where rounding happens and apply it once.
- Rate limits during month-end bulk pushes, which is exactly when you least want a queue.
- 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?
How often should it sync?
What about multi-currency?
What does an integration cost?
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.