What the QuickBooks integration does
DunaHub connects to QuickBooks Online through Intuit's official OAuth flow and pushes your customers, invoices, and payments to QuickBooks as soon as they are created. There is no double-entry, no copy-paste, and no monthly fee for the sync itself.
Region note: QuickBooks Online is US-only. Brazilian accounts won't see the integration in Settings.
Connect QuickBooks
- Open Settings → QuickBooks in your dashboard.
- Click Connect QuickBooks.
- You are redirected to Intuit's official authorization page — log in with your QuickBooks credentials.
- Approve the access request.
- You return to DunaHub with a confirmation that the connection succeeded.
The connection uses OAuth2 — your QuickBooks password is never sent to or stored by DunaHub. We hold a revocable access token that you can revoke at any time, either from Settings → QuickBooks → Disconnect or from inside your QuickBooks account.
What syncs to QuickBooks
When the integration is connected, the following records flow from DunaHub to QuickBooks Online:
- Customers — when you create or update a lead in DunaHub, a matching QuickBooks customer is created or updated.
- Invoices — when you create an invoice (from a lead, a job, or a proposal) it appears in QuickBooks with the same line items, totals, and customer link.
- Payments — when a client pays an invoice (card or ACH through DunaHub), the payment is recorded against the invoice in QuickBooks.
The sync is one-way (DunaHub → QuickBooks). Edits you make directly in QuickBooks do not flow back to DunaHub.
How the sync works
- Real-time. Each record is pushed to QuickBooks as soon as it is created in DunaHub.
- Fire-and-forget. A sync failure on a single record never blocks your workflow in DunaHub — the invoice is still created, the lead is still saved, and you can retry the sync afterward.
- Idempotent. Re-syncing the same record does not create duplicates in QuickBooks.
Check sync status
Open Settings → QuickBooks to see the connection status:
- Connected — sync is active.
- Not connected — no token; nothing is being synced.
- Token expired — Intuit access token needs to be refreshed. Click Reconnect.
Disconnect QuickBooks
- Open Settings → QuickBooks.
- Click Disconnect.
- The OAuth token is revoked immediately.
You can reconnect at any time by clicking Connect QuickBooks again. Records created while disconnected will not retroactively sync — only new records after reconnection flow through.
Troubleshooting
Sync silently stopped. The most common cause is an expired Intuit token. Open Settings → QuickBooks and click Reconnect — a fresh OAuth handshake resolves it.
A specific record didn't sync. Open the record in DunaHub. If the integration reports an error, the most common causes are:
- The customer has a name or email that conflicts with an existing QuickBooks record.
- An invoice line item references a product/service that has been deleted in QuickBooks.
Fix the underlying field, then re-trigger the sync.
Brazilian account doesn't see the option. The QuickBooks integration is currently US-only and is region-gated. If your organization region is BR, the integration tab does not appear in Settings.