Connecting Xero

Push accepted quotes into Xero as draft invoices. Two-way sync of contacts and payment status.

Updated 2026-05-22

If you run your books on Xero, Karven can push your accepted quotes across as draft invoices, sync customers as Xero contacts, and reflect payment status back into Karven. This eliminates the "now do it again in Xero" step that most tradies hate.

What syncs

  • Customers → Xero contacts. One-way (Karven → Xero) by default, with optional two-way sync.
  • Accepted quotes → Xero draft invoices. One-way (Karven → Xero).
  • Stripe payments received → Xero payments applied. One-way (Karven → Xero).
  • Manual payments entered in Xero → Karven payment status. One-way (Xero → Karven). Mark "Paid" in Xero, Karven updates.

What doesn't sync:

  • Draft quotes. They only land in Xero once accepted.
  • Subbie RCTIs. Karven has its own RCTI workflow; pushing those into Xero would create duplicates with Xero's own bills feature. You can manually export the RCTI summary at month-end.
  • PDF artwork. Karven's PDFs live in Karven. Xero generates its own PDFs from the synced invoice. Don't expect identical-looking PDFs in both places.

Connecting

Settings → Accounting → Connect Xero.

You'll be redirected to Xero's OAuth screen. Sign in (or pick the org if you have multiple Xero organisations), authorise Karven, and you're back in Karven with a "Connected to [Org name]" badge.

The auth tokens refresh automatically. You shouldn't ever need to re-authorise except after a long period of inactivity (~60 days).

Account mapping

After connection, Karven asks you to map a few things:

  • Default sales account. Where invoice revenue posts in Xero. Most trades use "Sales" or a specific income account they've set up.
  • GST tax rates. Karven maps to "GST on Income" and "GST Free Income" by default; if you've renamed your tax rates, point them at the right ones.
  • Stripe fee account. Where Stripe processing fees post (typically an expense account called "Merchant Fees" or "Bank Fees").
  • Tracking categories (optional). If you use tracking in Xero, e.g. by trade or by branch, Karven can post to the right category based on the quote's tags.

You can change any of this later in Settings → Accounting → Xero mapping.

How an accepted quote becomes a Xero invoice

When a customer accepts a quote:

  1. Karven creates the customer in Xero if they don't already exist.
  2. Karven creates a draft invoice in Xero with line items matching the quote breakdown.
  3. The invoice is left in draft for you to review.
  4. You approve it in Xero (or in bulk from Karven's Pending sync screen).
  5. Once approved in Xero, it's a normal Xero invoice, you send it from Xero if you want, or have Karven send the PDF (most users let Karven send because the Karven PDF is branded and the customer's already seeing it in the portal).

The Karven PDF and the Xero invoice number can coexist. Karven stamps the Xero invoice number onto its own PDF once the sync completes, so the customer sees one consistent reference.

Payment sync

When a customer pays via Stripe in the Karven portal, Karven posts a payment against the Xero invoice and applies the Stripe fee to your merchant fees account. The Xero invoice flips to "Paid". The bank feed reconciliation in Xero matches the cleared Stripe payout against the matched invoices.

If a customer pays via bank transfer instead, you mark the invoice paid in Xero once the bank feed confirms, Karven picks that up on the next sync (every 15 minutes) and updates its own status.

Handling existing customers

If you've already got customers in Xero before connecting Karven, Karven offers to:

  • Skip duplicates by email: Karven keeps its own record and matches by email when invoicing.
  • Import all Xero contacts into Karven: useful if you're moving wholesale to Karven and want the contact book centralised here.
  • Manual match: go through customer by customer.

For most users, the first option is the right answer. Match by email on the fly; don't import wholesale.

Multi-org

If you have multiple Xero organisations (e.g. one per business entity), Karven supports connecting one Xero org per Karven workspace. If you've got multiple Karven workspaces, each connects to its own Xero independently.

Disconnecting

Settings → Accounting → Disconnect. Existing synced records stay where they are in Xero, they're real Xero invoices and customers, owned by Xero. Karven just stops pushing new ones.

A common gotcha

If your Karven workspace and your Xero org have different financial year settings, you'll get warnings on year-end. Get them aligned at setup time. Australian FY is 1 July to 30 June for almost everyone.

Was this useful?

If anything's unclear or out of date, email support@karven.com.au and we'll fix it.