QuickBooks and Xero
Send your invoices, payments and credit notes straight into your accounting system.
Connect QuickBooks Online or Xero and the documents you raise here land in your books automatically. An invoice you finalise appears in your accounting system, a payment settles it, and a credit note credits it. No monthly export, no re-keying.
Both work the same way and are set up the same way; this page covers what they share. Each also has its own guide covering every provider specific setting and rule: QuickBooks Online and Xero.
Connect your account
- Go to Settings, then Integrations, and choose QuickBooks Online or Xero.
- Select Connect and approve access.
- For Xero, pick the organisation you want. For QuickBooks, pick the company.
You can connect more than once. Two company files for two legal entities is a supported setup, and each connection keeps its own accounts and settings.
Point it at the right entities
If your business has more than one billing entity, tell each connection which ones it handles under Which entities export here.
This is exclusive: an entity's documents belong in one set of books. Routing an entity to a second connection moves it rather than adding a destination, and the form tells you where it is moving from.
A connection that is neither your default for that provider nor routed to any entity exports nothing at all. That is a real setting rather than a bug, but it is easy to hit by accident, so the connection page says so plainly when it happens.
Running QuickBooks and Xero side by side
You can have both connected at the same time. Routing is per provider, so the natural setup is one entity's books in QuickBooks and another's in Xero, each document landing exactly once.
If the same entity is routed to both providers, both receive a copy of every document. That is occasionally what you want, such as a parallel run while migrating from one system to the other, but remember that only one of them can be your real books. If you did not mean to run both, route the entity to one and disconnect or pause the other.
Choose where things land
The Account mapping grid pairs each part of an invoice with an account in your chart of accounts.
- Revenue and Payments received are required. Nothing exports until both are set, because there is no sensible default for either. Money has to land somewhere you chose. QuickBooks bills invoice lines through a product or service rather than against an account directly, so there it needs one pointing at the revenue account you pick; the QuickBooks guide covers what that means in practice.
- Discounts get their own account. Give them one. Without it a discount nets against revenue and understates what you actually earned.
- Prepaid credit is where a customer spending wallet balance they already paid for is drawn from. It keeps that spending out of your cash accounts, because no new money arrived.
- Credit notes is where credits you issue are recognised when they post as their own credit documents.
- Tax rate picks which of your tax codes an exported line is filed under. Leave it blank and the amounts still cross exactly; the accounting system files them under its own default code.
- Everything else is a catch-all item for anything not mapped, so a part-configured connection still works rather than failing.
Sending one thing somewhere different
Under Overrides, point a single product at a different account. An override for a product beats the general mapping; if a specific price has its own override, that beats both. Use it when one product line belongs in its own revenue account.
The same section routes payments by gateway or currency, so a Stripe payout and a bank transfer can reconcile to different accounts, or your EUR takings can land apart from USD. The most specific route wins, and payments matching no route use the Payments received account.
Tax
Your tax figures are sent as they are. We do not let the accounting system recalculate them, because two rounding methods disagree by pennies per line, and then your books no longer match the invoice your customer received.
The two systems accept this differently, and the integration handles it for you: QuickBooks takes one tax total per invoice and spreads it across your tax codes; Xero takes tax line by line. Either way the total in your books equals the total on the invoice, to the penny.
Map your rates under Tax rate so exported lines file under the right code in your accounting system.
Protecting closed periods
Once you have filed a period, you do not want new entries appearing in it.
Set Closed through to the last day of your closed period. Anything dated on or before that day is held back, including a backfill reaching into history and a retry that finally succeeds weeks later. Held documents appear on the activity feed with the reason, so nothing disappears quietly.
Bringing in your history
Sync existing records exports the history you already have: your issued invoices, the payments that settled them, and any credit notes you issued. Voided invoices and drafts stay home, and each document brings its customer along automatically. That way your books show what was actually paid, not a wall of invoices that all look overdue.
Xero allows 5,000 API calls a day per organisation, so a large history is genuinely a multi-day job of around 1,600 documents a day. It paces itself and picks up where it left off rather than racing to the limit and failing for the rest of the day. QuickBooks is far more generous and clears the same volume in about an hour.
Customers come along automatically. Only customers with invoices are created, so your accounting system does not fill up with names that have no transactions.
Keeping an eye on it
The Activity list shows every export, with a reason for anything skipped or failed.
The integration also re-checks documents it has already sent and reports anything that no longer matches: a record deleted on the accounting side, or one whose total was edited there. It only reports. It never quietly rewrites something your bookkeeper changed on purpose. If someone voided an invoice in QuickBooks, you will see that rather than finding out at year end.
Good to know
- Drafts are never exported. A draft invoice can still change, so only finalised documents go out.
- A credit note goes out when you issue it, not when you create the draft.
- Re-sending is safe. Every document carries an identifier your accounting system recognises, so a retry updates the existing record instead of creating a second one. If that link is ever lost, for example because the connection was deleted and set up again, the export looks the document up by its number and picks up where it left off rather than posting a second copy.
- Disconnect rather than delete if you plan to come back. Disconnect keeps your settings and the record of what has already been sent, so reconnecting carries on. Delete throws both away: nothing is duplicated, because each document is matched up again by its number, but that takes time and API allowance on a large history.
- Your numbering has to be yours alone. If your accounting system already contains a document with the same number as one of ours, for a different customer or a different amount, the export stops and says so rather than overwriting it. Change where our numbering starts, or renumber the document on their side.
- Voids and refunds do not sync yet, in either direction. If you void an invoice or issue a refund after it exported, make the matching entry in your accounting system by hand for now.
- Credit notes do not currently carry tax. This matters if you are registered for VAT, GST or sales tax, because it affects two things. In your accounting system a credit reduces revenue but does not reverse the tax on the original invoice, so that liability stays where it was. And because an invoice total includes its tax, crediting only the net leaves the tax portion showing as still owed, which can put the invoice into your overdue list and start payment reminders. Until this changes, credit a tax-charged invoice for its full total including tax, and adjust the tax in your accounting system by hand.
- A customer has one currency. That matches how both systems work, so a customer billed in two currencies is not something either side can represent.
- Foreign currencies need Multi Currency turned on in QuickBooks. A QuickBooks company starts single-currency, and a customer or invoice in any other currency cannot exist there. If you bill in more than one currency, turn on Multi Currency in QuickBooks first (the gear icon, then Account and settings, Advanced, Currency). Documents in your home currency export either way.