Accounting integration

One connection, and the double entry disappears.

This is the part that pays for itself. Everything below is a standard, supported Xero capability — the work is in mapping it correctly to how Eventmen invoice.

Two-way

Customers ↔ Xero contacts

New customers create a Xero contact; changes flow either way. Where TSS history has produced two contacts for one customer, the sync flags it for a match-and-merge decision rather than guessing.

App → Xero

Hire invoices → Xero

An invoice raised against a completed hire posts as a Xero sales invoice with the correct dates, references and line detail — the hire number carries through so accounts and ops are talking about the same job.

App → Xero

Credit notes → Xero

Damage waivers, short returns and goodwill credits raise properly against the original invoice instead of being handled with an adjustment nobody can trace six months later.

Xero → App

Payments and allocations ← Xero

Payment status comes back into the app, so a salesperson looking at a customer sees the same aged debt position accounts sees — before they quote the next job.

App → Xero

Nominal and tracking mapping

Each equipment category maps to its nominal code, with optional tracking categories per event or region, so revenue reporting in Xero matches how you actually think about the business.

When it goes wrong — and it will

Integrations fail: a contact gets renamed, a nominal is retired, Xero rate-limits a busy morning. The difference between a good integration and a bad one is what happens next.

Visible

Every push and pull is logged with the exact Xero response — no silent failures.

Recoverable

Failures queue and retry with backoff; nothing is lost, nothing is double-posted.

Actionable

Errors that need a human — duplicate contacts, missing codes — land in a queue with the fix one click away.

See it in the demo

The invoicing screen shows sync status per invoice, a simulated push to Xero and the live sync log — including a deliberately failed record so you can see how an error is surfaced. It's a simulation: no live Xero account is touched.

Open invoicing and Xero sync