Skip to main content
Unlike Stripe’s push-based webhooks, the QuickBooks Online API doesn’t offer webhooks at the granularity Precipiq needs — so this is a pull integration. Precipiq runs a background job every 15 minutes that fetches invoices, bills, and payments modified since the last sync and converts them into Financial Events in your ledger. Once you connect your QBO company file, the ledger stays up to date automatically.

Setup

1

Register a QBO app

Go to Intuit DeveloperMy Apps and create a new app. Copy the OAuth 2.0 Client ID and Client Secret — you’ll need both in Precipiq.
2

Configure the redirect URI

On your QBO app, set the OAuth redirect URI to:
https://api.precipiq.dev/api/v1/integrations/quickbooks/callback
3

Add your credentials to Precipiq

In the Precipiq dashboard, go to Settings → Integrations → QuickBooks and paste in your client ID and client secret.
4

Authorise the connection

Click Connect QuickBooks on the same page. Intuit’s consent screen opens — select your company file and approve access. Precipiq stores the resulting OAuth tokens and uses them for all future syncs.
5

First sync

Precipiq triggers the first sync immediately after authorisation, pulling up to 90 days of historical data. Subsequent syncs run every 15 minutes. Check Dashboard → Integrations for the last-sync timestamp and any sync errors.

What gets synced

Each QBO object has a stable ID that Precipiq uses as the external_id on the Financial Event. This makes every sync fully idempotent — re-syncing the same data never creates duplicate events.
QBO objectPrecipiq event typeSign
Invoice (paid)payment+
Billcost
CreditMemorefund

OAuth scope

Precipiq requests the minimum viable scope to read your accounting data:
com.intuit.quickbooks.accounting
Precipiq requests read-only access and never writes to QuickBooks. Payroll data and payment processing are outside the scope of this integration.

Limits

  • Rate limits — QBO’s API allows 500 requests per minute per realm. The Precipiq poller self-throttles well under that ceiling.
  • Historical backfill — on first connection, Precipiq pulls data from the last 90 days. Data older than 90 days can be backfilled by uploading a CSV via Settings → Backfill (coming in a future release).
The default sync interval is 15 minutes. Contact support if you need a custom sync frequency for your plan.