Skip to content

Accounting: Xero and QuickBooks

Invoices and payments push to your ledger automatically when an invoice is paid, so your bookkeeper is not re-keying what the shop already recorded.

Connecting

Insight, then Integrations, then the Accounting card.

FieldValue
Providerxero or quickbooks
Access token / refresh tokenFrom your OAuth app for that provider

Both providers need OAuth credentials from an app in their developer console:

ProviderAlso needs
XeroXero tenant id, client id, client secret
QuickBooks OnlineRealm id, client id, client secret

Only the provider you choose is active. There is no both-at-once mode.

Matching customers

Set the Xero/QB ID on each customer record to their contact id in your accounting system. Without it, the sync may create a new contact rather than matching your existing one, and you end up reconciling two versions of the same customer.

Do this for your regular trade accounts before turning the sync on. One-off retail customers matter far less.

What syncs

DirectionWhat
OutInvoices, when issued; payments, when recorded
InPayments recorded against invoices in your ledger, so an invoice paid in Xero shows paid here

Tax on a synced invoice uses your tax scheme. If your accounting system's tax codes are set up differently, fix the mapping before you sync a month of invoices, not after.

Before you switch it on

  1. Reconcile your ledger to a known-good state, so you can tell which entries came from the sync.
  2. Match your top customers' accounting IDs.
  3. Sync one invoice and look at it in your accounting system: contact, tax code, account code, amount.
  4. Then let it run.

Troubleshooting

SymptomCheck
Duplicate contactsAccounting IDs not matched on customer records
Invoice rejectedTax code or account code mapping in your ledger
Nothing syncingToken expired. OAuth tokens need refreshing; reconnect the card
Payments not coming backThe inbound payment pull, which runs on a schedule rather than instantly

Printer's Friend - software for apparel print shops