Troubleshooting

Connection (OAuth) flow problems

Company selector does not show QuickBooks companies

Symptom:

The company selector (realm picker) window does not display the user’s QuickBooks companies, so the user cannot connect to a QuickBooks company.

Solution:

Check the following:

  • Within the Development and Production tabs for the app in question on the Intuit Developer site, make sure that you have selected the QuickBooks Online, QuickBooks Payments, or both.
  • Instruct the user to sign into the QuickBooks app store, click Change Company, and view the list of companies that are associated with the user. If a company is not listed perhaps the user’s QuickBooks subscription has expired.

Domain does not match

Symptom:

When the user connects to a QuickBooks company, the following message appears in a red bar at the top of the company selector page: “The web-site domain of the application requesting access to your Intuit data does not match what we have on file. Please proceed at your own risk.”

Solution:

Work within your app’s Development tab to edit settings: make sure the domain in the URL fields match the domain in the Host domain field.

Domain check fails during OAuth

Symptom:

When the user connects to their QuickBooks company, the following message appears:

Error Code: no_such_database
Message: Cannot find application corresponding to this host.

Solution:

Edit settings within your app’s Development tab to make sure that the host name in the Launch URL field matches that in the GrantUrl parameter of the call to the JavaScript setup() function. The following code snippet calls setup(), specifying example.com as the host name:

1
2
3
4
5
<script type="text/javascript">
   intuit.ipp.anywhere.setup({
      grantUrl: 'http://example.com/HelloWorldIA/RequestTokenServlet'
   });
</script>

OAuth Context Missing

Symptom:

The company selector (realm picker) displays the following error message:

Oops! An error has occurred.
Please close this window and try again.
Error Code: missing_required_value
Message: OAuth context missing

Solution:

This error might occur if the OAuth access token secret is corrupt or otherwise invalid. In this case, tell the user to connect to QuickBooks again. If this problem occurs during development, your code that gets the OAuth access token might have a bug.

Invalid OAuth Access Token

Symptom:

The OAuth access token is invalid if it has expiredor if the app has been disconnected from the QuickBooks company.

  • For the Disconnect API, if the access token is invalid, the HTTP response code is 200 and the following error response is returned:

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<PlatformResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://platform.intuit.com/api/v1">
   <ErrorMessage>OAuth Token rejected</ErrorMessage>
   <ErrorCode>270</ErrorCode>
     <ServerTime>2011-11-23T17:15:27.21097Z</ServerTime>
</PlatformResponse>
  • The HTTP response code is 401 for calls to the QuickBooks Online API with an invalid access token.

Solution:

  • For the Disconnect API, your app should display the Connect to QuickBooks button.
  • For the AppMenu API, no action on your part is required.
  • For the QuickBooks Online API, your app should display the Connect to QuickBooks button.

Oauth Invalid Signature

Symptom:

The QuickBooks Online API returns an error code 401 with the following response:

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<PlatformResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://platform.intuit.com/api/v1">
   <ErrorMessage>Invalid Signature</ErrorMessage>
   <ErrorCode>401</ErrorCode>
     <ServerTime>2011-11-23T17:15:27.21097Z</ServerTime>
</PlatformResponse>

Possible Solution:

The OAuth spec calls for lexicographical byte value ordering (capital letters come before lowercase).

DB Limit Exceeded

Symptom:

User sees the following error message during the OAuth flow, using either development or production access tokens when app is in a pre-published state:

Error Code: db_limit_exceeded
Message: Submitted instances limit (10) has been exceeded for this QuickBooks API application. Please contact the <App name> development team.

Possible Solution:

Disconnect all/some of development connections. This can be done through the Disconnect API.

QuickBooks Online data access problems

Invalid database

Symptom:

You receive the following error message when test your app.

Error Code: invalid_database.
Message: Development application can only subscribe to sandbox company. No sandbox company found Error Id :

Solution:

To test your application against any kind of existing QuickBooks account, including your existing trial or one year developer subscription, you must switch your application to use production app tokens.

URI endpoints for QuickBooks Online API

Symptom:

You receive the following error message when testing your app with development keys:

Error code 7001: “message=No destination found for given partition key; errorCode=007001; statusCode=400″

Solution:

You must use the URI endpoint corresponding to the sandbox:

The QuickBooks Online API endpoint base URLs to use in data operations are:

  • Sandbox base URL to use with development keys: https://sandbox-quickbooks.api.intuit.com/v3
  • Production base URL to use with production keys: https://quickbooks.api.intuit.com/v3