Learn how to set up and enable the QuickBooks Online integration in Sync2Books.
Prerequisites
Before setting up the QuickBooks Online integration, ensure you have:
- ✅ Sync2Books account - An active Sync2Books account
- ✅ QuickBooks Online account - A QuickBooks Online account (or sandbox account for testing)
- ✅ Intuit App - A registered Intuit app (see below)
Step 1: Create an Intuit App
To connect to QuickBooks Online, you need to create an app in the Intuit Developer Portal.
- Go to Intuit Developer Portal
- Sign in or create an account
- Click Create an app
- Select QuickBooks Online as the product
- Fill in your app details:
- App Name: Your application name
- Redirect URI:
https://api.sync2books.com/companies/quickbooks/callback (or your callback URL)
- Scopes: Select the required scopes (see below)
- Save your app credentials:
- Client ID (App ID)
- Client Secret (App Secret)
Required scopes
For expense management, you need the following scopes:
com.intuit.quickbooks.accounting - Access to accounting data
com.intuit.quickbooks.payment - Access to payment data (if needed)
This step is required before auth-url will work. If you skip it, POST /companies
and GET /companies/{companyId}/auth-url still return a 200 response, but the
authUrl they return is missing client_id and redirect_uri — it will silently
fail to redirect anywhere useful. There is no error telling you credentials are
missing, so this is the most common reason a first integration attempt gets stuck.
You can configure credentials from the Sync2Books Dashboard
(Applications → select your application → Integrations → QuickBooks Online),
or directly via the API:
Use "server": "sandbox" while testing against an Intuit sandbox company, or
"production" once you are connecting real QuickBooks Online accounts.
Step 3: Test the connection
- Create a test company in Sync2Books
- Get the authorization URL for QuickBooks Online
- Complete the OAuth flow
- Verify the connection is created successfully
Example: Create company and get auth URL
Step 4: Connect a company
- Open the
authUrl in a browser
- Sign in to QuickBooks Online
- Authorize the connection
- You’ll be redirected back to your application
- The connection is automatically created
Verify connection
You should see a connection with integrationKey: "quickbooks" and status: "connected".
Sandbox vs Production
Sandbox (Testing)
- Use for development and testing
- Connect to QuickBooks Online sandbox companies
- No real financial data
- Faster rate limits
Production (Live)
- Use for live customer connections
- Connect to real QuickBooks Online companies
- Real financial data
- Stricter rate limits
Troubleshooting
Connection fails
- Verify your Intuit app credentials are correct
- Check that redirect URI matches your app configuration
- Ensure required scopes are selected
OAuth flow doesn’t complete
- Check redirect URI configuration
- Verify callback URL is accessible
- Check browser console for errors
Connection status is ERROR
- Check connection details in Sync2Books Dashboard
- Verify OAuth token hasn’t expired
- Reconnect the company if needed
Next steps
Once your integration is set up:
- Configure expense mapping - Set up default accounts and tax rates
- Create your first expense - Sync an expense transaction
- Upload receipts - Attach files to expenses
Read next