Connect QuickBooks
Auto-sync paid invoices into your QuickBooks account. One-time setup, ~3 minutes.
What it does
Every time an invoice flips to paid in our system (Stripe webhook, manual Mark Paid, QB Payments — any path), we:
- Look up your customer in QB by email — create if missing
- Create a corresponding QB invoice with the same line items
- Mark the QB invoice as paid
Result: your QB books match your sent invoices automatically. No double entry.
Setup
- Go to
/kz-admin/integrations - Click Connect QuickBooks
- You'll be redirected to Intuit's authorization page
- Pick the QB company you want to sync to (most users have one)
- Confirm the permissions (we need read + write on Customers, Invoices, Items)
- Intuit redirects you back to us — you'll see "QuickBooks connected" with a green pill
That's it. From now on, every paid invoice flows through.
What gets synced
- Customers — name, email, address (matched by email; we don't duplicate)
- Invoices — invoice number, line items, amount, currency, paid status
- Income accounts — line items map to your default income account (configurable later)
What doesn't get synced (yet)
- Tax rates — we use your invoice's tax rate; QB stores its own. If they don't match, QB picks based on the customer's address. Spot-check after the first sync.
- Bank reconciliation — QB Payments-paid invoices reconcile automatically; e-transfer/cheque-paid invoices land as "Undeposited Funds" until you reconcile in QB.
Token refresh
QB access tokens expire after 1 hour. We auto-refresh in the background using the refresh token (which lasts 100 days). Long story short: connect once, stays connected as long as you use the system.
If you ever see "QB token expired" errors, click Reconnect in /kz-admin/integrations.
Disconnecting
/kz-admin/integrations → click Disconnect under QuickBooks. We delete the access + refresh tokens immediately. Past synced invoices stay in QB; we just stop pushing new ones.
Sandbox vs production
If you're testing, you can connect a QuickBooks sandbox company first. We auto-detect which environment based on what you authorize. Switch to production by clicking Disconnect → Reconnect with a production-tier QB company.
Common issues
- "Could not find customer email" error — set the client's email in the invoice before sending
- Currency mismatch — make sure your QB company is in CAD (or USD, matching your tenant settings)
- QB Plus / Advanced required for >5 customers — Intuit's tier limit, not ours