Integration Services
We connect Xero to the system your business already runs on, so the same invoice is never typed twice.
Xero keeps the books. Your own system keeps the work, whether that is orders, stock, dealers, projects or subscriptions. We build the link between them so records move on their own, in the direction you chose, with a written mapping behind every field. The connection is built against a demo organisation first, and nothing reaches your live ledger until your accountant has checked the numbers.
An order is entered in your own system and then entered again in Xero. Two people, two chances to get it wrong, and no way to tell which one is right.
Accounting sees last week, not today. Decisions get made on figures that were true a few days ago.
Payments land in Xero while your own screens still show the invoice as open, so chasing happens by memory and by phone.
Closing the month means exporting, matching and correcting by hand, every month, forever.
| Record | Direction | How It Is Handled |
|---|---|---|
| Customers and suppliers | Both ways | Matched on the Xero contact id we store, never on the name, so a renamed customer does not become a second record. |
| Sales invoices | Your system to Xero | Posted as a draft for your accountant to approve, or straight to authorised. You decide which before we build. |
| Bills and purchase invoices | Your system to Xero | Same route as sales invoices, against the supplier contact. |
| Payments and settlements | Xero to your system | So your own screens show what has actually been paid without anyone checking the ledger. |
| Credit notes and refunds | Your system to Xero | Allocated against the original invoice rather than left floating. |
| Products and services | Either way, decided once | Each one carries an account code and a tax rate. That mapping is agreed before the first record moves. |
| Chart of accounts and tax rates | Xero to your system | Read from Xero and cached, so your system offers only codes that Xero will accept. |
| Tracking categories | Your system to Xero | Used for branch, department or project reporting. Xero allows two, so they are chosen deliberately. |
This is the starting point rather than a fixed list. The final version is agreed with you and written into the scope before the build begins.
Xero uses OAuth, and the token that keeps the connection alive is replaced every time it is used. Miss one rotation and the link dies without an error anywhere. We store and rotate tokens properly, and when a connection does need re-authorising, someone is told before invoices start failing.
Xero caps how many calls an organisation accepts per minute and per day. A nightly job that pulls everything will hit the ceiling and start failing silently. We sync only what changed, using modified-since queries and webhooks, so the volume stays flat as your data grows.
Every Xero invoice declares whether its line amounts include tax, exclude it, or carry none. Choose wrong and every total is off by the tax amount, on every invoice, until someone notices in a reconciliation. It is written into the scope before the first line is posted.
A group with more than one company has more than one Xero organisation behind the same login, and every call has to name the right one. This is where group structures usually break, with invoices landing in another company’s books.
Xero can notify your system when an invoice or contact changes, but the notification carries an id and nothing else, and it has to be signature checked before it is trusted. We verify it and then fetch the record, rather than acting on the message itself.
Which records, which direction, which system wins when the two disagree. This comes out as a written mapping document, including account codes and tax rates, before anyone writes code.
Development runs against a Xero demo organisation, not your live books. Nothing reaches your real ledger until you have seen it work.
We post a set of real cases and you reconcile them yourself. Totals, tax, allocations. The integration goes live once your accountant agrees with it.
Failed calls are retried, and anything that cannot be resolved raises an alert rather than sitting in a log nobody reads. A dead connection is noticed by us, not by your customer.
No. You authorise the connection from inside your own Xero account and it can be revoked there at any time. We never hold your login, and access is limited to the areas the integration actually uses.
Where it makes sense. Invoices usually go one way into Xero, while payments come back out. For customers and suppliers it is often both. The direction is decided per record type during scoping, because two systems both trying to own the same field is how data gets corrupted.
That depends on what you want to happen, and it is one of the questions we settle in writing first. The usual answer is that Xero wins once an invoice is authorised, and your system is updated to match rather than overwriting it.
Scope decides it. How many record types move, whether they move in one direction or two, and how clean the existing data is all change the answer. We settle what will be built first, then put your own schedule in writing with start and delivery dates.
The integration sits in its own layer rather than being wired through your business logic, so a different accounting system means rewriting that layer and not your application. This is also why we do not let Xero field names spread through your database.
You own the source code. Once payment is complete, everything produced for the project passes into your company’s ownership. That is written into the agreement before work starts, alongside the scope and the price.
Send us the system on the other side and what you want moving between them. You get a written scope with the mapping, the timeline and the price before any work starts.
Average Response Time: 15 Minutes