Skip to content

QuickBooks & Xero sync

BenchKey pushes your sales into the books your accountant already uses. The sync is one-way (BenchKey → your accounting system), covers customers, invoices, payments, and refunds, and is built so a retry, a re-click, or an edit can never double-post.

The Integrations directory with the QuickBooks Online accounting entry visible

Both connections live in Settings → Integrations & Shipping → Integrations, under Accounting connections.

  • QuickBooks Online: click Connect to QuickBooks, sign in to the QuickBooks account for your shop, choose the company, approve access. You come right back, connected. No keys to copy.
  • Xero: click Connect, approve in Xero, done. BenchKey never sees your Xero login.

Nothing syncs until you tell it where sales belong:

  • QuickBooks: set the default QuickBooks item ID your invoice lines post against (and an optional tax code). The card links to a guided way to find it.
  • Xero: set your default account code, and the bank/clearing account payments should post to (Xero requires an explicit account for payments; QuickBooks doesn’t).

With the mapping set, enable auto-sync. From then on, invoices paid in BenchKey flow to your books within minutes: the customer, the invoice, the payment, and any refunds — refunds post as credit memos in QuickBooks and credit notes in Xero. A daily deeper pass retries anything transient (a provider hiccup, an expired session) over a seven-day lookback.

Prefer to stay manual? Every invoice also has its own Sync now action.

This is the part that matters at reconciliation time:

  • Every push is idempotent: each record carries a fingerprint, and an unchanged record re-pushed is a no-op. Retries, crashes mid-sync, and double-clicks single-post.
  • If an invoice’s math doesn’t reconcile to the cent (lines − discount + tax ≠ total), BenchKey refuses to post it and flags it for review rather than corrupting your ledger.
  • If something already synced is edited in BenchKey — a renamed customer, a changed payment — it is held in a review queue instead of being re-posted. You decide how it lands.
  • Review-queue items are never auto-retried. A human clears them, on purpose.

Disconnecting clears the stored authorization immediately; reconnecting is the same one-click flow. Your mapping survives a reconnect.

Does BenchKey import from QuickBooks or Xero? No — the sync is deliberately one-way, out of BenchKey. Your books are the destination of record, not a second editing surface.

Which plan includes accounting sync? Pro and up (it rides the integrations tier).