QuickBooks Online guide

Software Setup

To acquire your own QuickBooks Online instance, we suggest creating an Intuit Developer account and creating a sandbox instance.

Realistic data is provided by the new sandbox instance, which comes with many sample transactions.

Rutter does not provide a QuickBooks Online instance.

Developer Account Setup

Create a QuickBooks Online app and configure it so that you can process accounting data through Rutter.

Create a QuickBooks Online App

  1. Navigate to your QuickBooks Dashboard and click on “Create an app” on the top right https://developer.intuit.com/app/developer/dashboard. Fill in the app name and be sure to check the accounting scope. Create a QBO App QBO App Info

Update Redirect URI

  1. In the test app, you need to add https://production.rutterapi.com/quickbooks/proxy/redirect-url as a redirect URI
  2. You can do this by clicking on Keys & Credentials. Add the redirect URI under Development Settings (if you’re testing with a QuickBooks Sandbox company) or Production Settings (if real company). QBO Redirect URI

Share your QuickBooks Developer client_id and client_secret with Rutter

  1. First, get the client_id and client_secret from QBO. To do this:
    • Navigate to Keys & credentials in the QuickBooks dashboard app’s settings: . Use Development Settings (if you’re testing with a QuickBooks Sandbox company) or Production Settings (if real company). QBO Settings
  2. Then, share these two values to Rutter by entering them in the Dashboard:
    • Login to the Rutter Dashboard
    • Make sure you’re in Production Mode. Navigate to Platforms, select the Accounting menu, and click on QuickBooks.
    • Copy the client_id and client_secret into the text boxes and click Save. QBO Creds

Log in to the Dashboard and Open up the Auth flow

  1. On the Rutter Dashboard, navigate to Connections on the sidebar. Click Create New Connection on the top right. Rutter Dashboard
  2. Copy the shareable URL below QBO Link URL
  3. The url will open up the auth flow where you can select QuickBooks
  4. The merchant connects to QuickBooks by signing into their QuickBooks account to authenticate. Intuit Login

On Completion

  • You should see the following screen, indicating a successful connection: QBO Auth Complete

Reference

Sandbox vs Production Caveats

If you are using a QuickBooks Online Sandbox, there are some important pieces to note. The Developer Configuration in your Rutter Dashboard can have the credentials from either a Sandbox instance (your "Development" keys in QBO) or a Production instance (your "Production" keys in QBO). You cannot have both Sandbox and Production connections at the same time in your Rutter instance.

To maintain separate environments for development vs production, you can create two Rutter organizations, one for production and one for staging/testing, to better separate these processes out. One instance can be used with your "Development" QBO keys, and one with your "Production" QBO keys.

To set up your second Rutter instance, just head to Rutter's Sign up page. You'll need to use a different email than on your primary Rutter organization. For example, if you used john.doe@rutterapi.com to sign up for your primary Rutter organization, you could create a new staging organization using the email john.doe+staging@rutterapi.com.

Once done, reach out to your Rutter Success Manager with your staging organization ID to ensure you receive full access to Rutter.

Merge Webhook Events

When two records (for example, duplicate customers or vendors) are merged in QuickBooks Online, QuickBooks eventually hard-deletes the losing record without reporting it as a deletion through its Change Data Capture API. Rutter listens for QuickBooks Merge webhook events to detect these merges and automatically remove the stale losing record from your synced data — after first re-querying QuickBooks (including inactive records) to confirm the record is truly gone.

If your connections use Rutter's QuickBooks app (the default), no action is required — Merge events are already enabled.

If your team uses your own QuickBooks app (a custom OAuth app registered in the Intuit Developer Portal), Merge events must be enabled in your app's webhook configuration for this cleanup layer to work:

  1. Open your app in the Intuit Developer Portal and navigate to the Webhooks section, under Development or Production Settings depending on your environment.
  2. Set the webhook Endpoint URL to your organization's Rutter webhook URL. This is shown on the QuickBooks configuration page in the Rutter Dashboard — reach out to Rutter support if you do not see it.
  3. In the event triggers list, enable the entities you sync through Rutter and check the Merge operation for each entity that supports it (for example Customer, Vendor, and Account).
  4. Copy the Verifier Token that Intuit generates for your webhook configuration and save it on the QuickBooks configuration page in the Rutter Dashboard. Rutter uses this token to verify webhook signatures, and events that fail verification are rejected.

Without Merge events enabled, your connections still receive standard sync coverage — you only miss the additional merge-cleanup layer, which can leave merged-away records present in synced data until they are removed manually.

FAQ

Does QuickBooks Online have Locations as a tracking category?

Yes. In QuickBooks Online, the tracking dimension shown as "Locations" in the UI corresponds to the Department entity in the QuickBooks API/docs, and Rutter exposes this tracking dimension using the Department terminology.

Which versions of QuickBooks Online are supported?

Rutter supports creating connections for all versions of QuickBooks. However, depending on the version, you may be missing some functionality. For example, the Simple Start and Essentials versions lack support for Inventory. See QuickBooks's Pricing Page for more information.

Additionally, you can only create a sandbox for Plus and Advanced accounts. See QuickBooks's Sandbox FAQs for more information.

Naming Conventions

Accounting platforms can refer to Rutter objects by different names internally.

Bills

Bills are represented in QuickBooks as Bills.

Vendors

Vendors are represented in QuickBooks as Vendors.

Bill Credit Memos

Bill Credit Memos are represented in QuickBooks as Vendor Credits.

Expenses

Expenses are represented in QuickBooks as Purchases.

Departments

Departments are represented in QuickBooks as Department in their documentation, and as Locations in their UI.