Technical requirements

To list on the QuickBooks app store,​ you must submit your app to Intuit for review. Technical review is the first part of this process. The sections below detail the items that are required to pass technical review. Make sure your app meets these requirements before submitting it. You must use the QuickBooks API Accounting domain to meet these requirements, so be sure to include it when you create your app.

Apps published on QuickBooks Apps.com must not only meet these requirements at the time of publication, but continuously after publishing. Intuit checks all apps annually to ensure that they still meet the technical and security standards required.

Note

The technical and security requirements for apps that omit Intuit single sign-on differ from those listed on this page. For those details, see App review process.

UI components

These requirements involve parts of your app that are displayed to users.

  1. 1: The Connect to QuickBooks widget shows in the app prior to connection, and is hidden once a connection has been established.
  1. 2: Widgets/Buttons/Workflows work in Internet Explorer 11 (or later), as well as Firefox and Chrome (current versions).
  1. 3: Only approved Apps.com, QuickBooks, and Intuit images are used.
  1. 4: QuickBooks is spelled properly (including capitalization); no abbreviations are permitted.

QuickBooks data connection

These requirements detail how your app must initiate, maintain, and re-establish connection with QuickBooks.

  1. 1: The API successfully passes data between your app and QuickBooks Online. Only QuickBooks API calls are used to move data.
Details and test steps
  1. Read data from QuickBooks Online: Data should successfully appear in the app.
  2. Write data to QuickBooks Online: Data successfully appears in QuickBooks Online.

To speed your review, submit a support ticket outlining the steps you follow to test this requirement. For example:

  • Link to a video which shows how to use your app
  • Link to a Knowledge Base article on support information
  • Keys needed to install the app (if applicable)
  • Account credentials to login to the app
  • Step by step guide on how to test the app’s integration with QuickBooks
  • Any additional caveats and tips
  1. 2: Once connected through OAuth, the connection is maintained until the user disconnects from QuickBooks. Signing out of an app does not disconnect a company.
Details and test steps
  1. Create an account in your app and connect it to a QuickBooks company.
  2. Launch a different browser.
  3. Sign in to your app.
    Your app opens with the QuickBooks connection maintained. The Connect to QuickBooks button is hidden and data service calls work.
  1. 3: A user can disconnect the app from QuickBooks from within your app.

Sign in with Intuit Button (OpenID)

These requirements detail how your app must use OpenID to implement the Sign in with Intuit button. Note that this section is optional if your app is implementing modified Intuit single sign-on or is a referral app.

  1. 1: The Sign in with Intuit button appears on all app sign-in pages and is displayed properly. When clicked, it launches the Intuit OpenID sign-in page.
Details and test steps
  1. Go to the home page for your app.
    The sign-in screen appears and the Sign in with Intuit button is easy to find.
  2. Locate the Sign In or Login button/link and click it.
    The Sign in with Intuit button should appear on all sign-in pages offered by your app. The Sign In with Intuit button is rendered using either JavaScript or approved graphics.
  1. 2: A new unknown user who clicks Sign in with Intuit signs in only to the app, without executing OAuth.
    Tip

    Have a workflow/wizard to recognize this customer and offer the ability to either link an existing account or create a new account for your app. Then inform user that the app is not connected to their QuickBooks data and show the Connect to QuickBooks button.

Details and test steps
  1. Click the Sign in with Intuit button.
  2. Type the User ID and password for an existing Intuit Account that is NOT currently connected to the app and click Sign In.
    The Intuit OpenID authorization screen appears. Your app should not interfere with or change the OpenID flow.
  3. Click the Authorize button.
    The authorization screen closes and the user is returned to your app in a signed-in state.
  1. 3: An existing connected user who clicks Sign in with Intuit is taken into the app and data service calls work.
Details and test steps
  1. Click the Sign in with Intuit button.
  2. Type the user ID and password for an Intuit account that is currently connected to the app.
  3. Click the Sign in button.
    The user goes in to your app without entering more credentials. The Connect to QuickBooks button is hidden and all data service calls work.

Interaction with Apps.com

These steps define how your app experience allows the user to navigate Apps.com.

  1. 1: On Apps.com, a new user can sign up for a free trial of your app by clicking the Get app now button.
Details and test steps
  1. Make sure you're not currently signed in to Apps.com:
    1. Log out of your app.
    2. Log out of apps.com.
    3. Close your browser.
    4. Open a new browser session.
  2. Go to the Get app now link for your app: https://appcenter.intuit.com/TryBuy/IA/yourAPPid.

    Tip: If you're using your development environment to test the Get app now flow, you can only connect to a sandbox company.

  3. On the Intuit OpenID sign-in page, type the user name and password for an existing Intuit Account that is NOT currently connected to your app.
  4. If prompted, choose QuickBooks Desktop or QuickBooks Online.
  5. If prompted, choose a company.
  6. Click the Authorize button.
    The user starts their free trial and lands on the page of your app that shows their integrated QuickBooks data, or a message about the integration.
    Detailed requirements:

    • Your app automatically provisions user's account.
    • Call directconnecttoIntuit (OAuth workflow is not displayed).
    • Page doesn't prompt create/enter a password (unless using modified Intuit single sign-on).
    • Page doesn't ask for any information that OpenID provides (name, email, realm ID) or QuickBooks API provides (company name, address, phone number, and so on).
    • Don't ask user to select a plan or enter payment info.
    • Don't show the Connect to QuickBooks button because the user's already connected.
  1. 2: If a user is signed in to Apps.com but not signed in to your app, the user can sign in to your app without being asked for credentials.
Details and test steps
  1. Make sure you're NOT currently signed in to your app:
    1. Log out of your app.
    2. Log out of apps.com.
    3. Close your browser.
    4. Open a new browser session.
  2. Go to https://appcenter.intuit.com/Home/MyApps/.
  3. Sign in to Apps.com with a QuickBooks account that is connected to your application.
  4. Locate and launch your app. It should open without prompting for credentials.
  1. 3: If the user has not signed out of your app or Apps.com, your app should launch from Apps.com without asking for credentials.
Details and test steps
  1. Make sure you're currently signed in to your app.
  2. Go to https://appcenter.intuit.com/Home/MyApps/.
  3. Sign in to Apps.com.
  4. Locate and launch your app. It should open without prompting for credentials.
  1. 4: A user can disconnect your app's access to their QuickBooks account from Apps.com.
Details and test steps
  1. Make sure you're NOT currently signed in to your app:
    1. Log out of your app.
    2. Log out of apps.com.
    3. Close your browser.
    4. Open a new browser session.
  2. Go to https://appcenter.intuit.com/Home/MyApps/.
  3. From the Manage My Apps tab, locate your app and click the Disconnect link.
  4. From the Confirm Disconnect dialog, click the Yes, Disconnect App button.
  5. On the Confirm Disconnect dialog, click Next or Close.
    The app disconnects from the user's QuickBooks data. The UI refreshes so the user can re-connect if necessary.

    What happens next:

    • Your app no longer appears in the My Apps section of Apps.com:https://appcenter.intuit.com/Home/MyApps/.
    • The user is redirected to a disconnect landing page within your app.
      • The disconnect landing page is OpenID-enabled
    • The OAuth tokens are invalidated and data service calls cannot be made.

    What your app needs to do:

    • The Connect to QuickBooks button appears.
    • The Disconnect link is hidden.
    Warning

    If you're using your development environment to test the disconnect, you see a Close button instead of Next. Click the Close button and wait for the App listing page to refresh (removing your application). Then manually navigate to the disconnect URL you specified for the development instance of your application.

 Got Questions? Get Answers in our developer forums.