GroundCut + QuickBooks Online

The QuickBooks Online integration runs an OAuth-authenticated direct sync between GroundCut and QBO. When an invoice flips to paid, the integration posts the invoice with line items, maps (or creates) the customer in QBO, and records the payment. Tokens are stored AEAD-encrypted at rest under a dedicated pgsodium key and refresh automatically. Connect from /admin/bookkeeping in two clicks. Included on the standard $99/mo plan with no upcharge.

What the integration does

  • Authenticate via QuickBooks OAuth — token refresh handled automatically; tokens stored AEAD-encrypted at rest under the qbo_tokens pgsodium key.
  • Sync paid invoices from GroundCut to QBO with line items, customer mapping, and payment records.
  • Track the last sync timestamp and most recent error per tenant for visibility on the /admin/bookkeeping panel.
  • Map GroundCut customers to QBO customers via quickbooks_customer_id on the customer row — created on first sync, reused after.
  • Idempotent on retries (won’t double-post the same invoice) and refund-aware (Stripe refunds flow through cleanly).

What’s automated

  • Invoice flips to paid → QuickBooks sync runs in the background; idempotent, refund-aware, with automatic token refresh.
  • Customers are created in QBO on first sync if they don’t exist, then reused on every subsequent invoice via quickbooks_customer_id.
  • Errors are surfaced on the /admin/bookkeeping panel with the Intuit trace ID so you can investigate without leaving the app.

Setup steps

  1. 1Go to /admin/bookkeeping and click "Connect QuickBooks".
  2. 2Sign in to Intuit and pick the QuickBooks company file (realm) you want GroundCut to sync to.
  3. 3Authorize the accounting scope. Intuit redirects back; the app stores encrypted tokens and shows "Connected" with the realm ID.
  4. 4From that point, every paid invoice syncs to QBO automatically. CSV export from /admin/bookkeeping is still available if your bookkeeper prefers it.

Related GroundCut features

  • CSV Export (still available alongside direct sync — covers Desktop, Xero, Wave, and bookkeepers who want manual control).
  • Invoices module (the source of every sync — paid invoices flow to QBO automatically).
  • Customer records (map 1:1 to QBO customers via quickbooks_customer_id, created on first sync).

QuickBooks Online integration FAQs

How do I connect QuickBooks Online?+
Go to /admin/bookkeeping and click "Connect QuickBooks". You’ll sign in to Intuit, pick the company file (realm), and authorize the accounting scope. Intuit redirects back, the app exchanges the code for tokens, and stores them encrypted in the quickbooks_connections table. From then on, the panel shows "Connected" with the realm ID and the last-synced timestamp.
Do I still need CSV export?+
Only if you want it. Direct sync handles paid invoices automatically. CSV export stays available for tenants who prefer manual posting, bookkeepers who use QuickBooks Desktop, Xero, or Wave, or anyone who wants a date-ranged dump for reconciliation. Both workflows coexist at the same flat price.
Does sync work for QuickBooks Desktop?+
No, QuickBooks Online only. The integration uses Intuit’s OAuth-based REST API for QBO. QuickBooks Desktop has a different (and aging) integration model that we don’t support. Use CSV export from /admin/bookkeeping for Desktop workflows.
Does it cost extra?+
No. Every integration lands on the standard $99/mo plan with no upcharge. There’s only one tier and one price; everything we ship is included.
Is the sync idempotent and refund-safe?+
Yes. Each invoice has a deterministic external ID that prevents double-posting on retries. Stripe refunds (charge.refunded webhook) flip the invoice to void if fully refunded and insert a negative payments row — the QBO sync mirrors that so your books don’t drift. If a sync fails mid-flight, the next attempt picks up cleanly.
Can I sync to Xero instead?+
No direct integration is built. The schema has a xero_sync_id column on invoices reserved for a future integration, but the integration code itself isn’t built. CSV export covers Xero today (Xero accepts the same CSV format as QBO Bank Data import). If Xero is a hard requirement for native sync, let us know on the contact form so we can prioritize accordingly.
How do I disconnect?+
Click "Disconnect QuickBooks" on /admin/bookkeeping, or disconnect from QuickBooks’ "My Apps" page inside QBO. Either path revokes the refresh token with Intuit and deletes the stored tokens and connection record within minutes. Data already written to your QBO company stays in QBO.

Try GroundCut + QuickBooks Online free for 14 days

Pro features unlocked during the trial. Connect on day one and see it work with your real data.

14-day free trial · No card required · Cancel any time