Skip to Content

QuickBooks Online OAuth Connection Guide

Prerequisites

  • You must be on Vinyl version 3.2 or later
    • If you are on Vinyl 3.3, use Vinyl version 3.3.33529 or later
  • You must have an Intuit Developer Account

Configuration in Intuit Developer

  1. Log into your Intuit Developer account.
  2. From the menu at the top right of the page, select Dashboard.
  3. Create a new app by clicking on the + Create App button.
  4. Select Quickbooks Online and Payments as the platform you want to develop for.
  5. Provide an app name, and select the scopes for the APIs you wish to access.

    Example app with scopes selected

  6. Once the app has been created, navigate to the Keys & Credentials page from the left side menu. Here you can find your Client ID and Client Secret, make sure to take note of these values.

  7. On the same page you will also configure the Redirect URI for the security provider on the Vinyl instance. If you know the name of your provider you can go ahead and configure this, and if not, we can return to this later. In this example the provider name is QBOnlineSupport. The format of the redirect URL should be https://<Vinyl-Instance>/signin-<Security-Provider-Name>.

    Example showing Client ID, Client Secret, and Redirect URL fields

Configuration in Vinyl

Create a Security Provider

After creating a custom OAuth app in the Intuit developer portal, you will create a security provider in Vinyl.

  1. Navigate to the Security Providers section from the IDE, and create a new security provider using the + Data Source Authentication button.
  2. Provide the following details:
    • Name - Identifies the Security Provider and appears in the URL. Example: QuickBooksOnline
    • Type - OAuth
    • Authentication Type - OAuth
    • OAuth Grant - Authorization Code
    • OAuth Client Authentication - Basic
    • OAuth Resource Authentication - Bearer
    • Token Owner - User
    • Redirect on Challenge - True
  3. Click + Endpoints and configure the following 2 endpoints:
    • Authorization Endpoint - https://appcenter.intuit.com/connect/oauth2
    • Token Endpoint - https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
  4. Click + Credential:
    • Type - Client
    • User Name - Client ID from custom OAuth App
    • Password - Client Secret from custom OAuth App
  5. Under the Properties section, click the + Property button to add a new property.
    • The Value should be com.intuit.quickbooks.accounting.
  6. If you did not configure the Redirect URI in the custom OAuth app in the Intuit Developer portal for this security provider name, go ahead and do so. (Step 7 from the section above - The property name should be Scopes.
  7. This completes the Security Provider setup.

Create QuickBooks Online Datasource

Now that you have created a custom OAuth app and security provider, you will create the QuickBooks Online Datasource.

  1. From the IDE, click on Data Servers.
  2. Click the + Server button.
  3. Give the server a name, and select the Type as Quick Books Online.

    Example QuickBooks Online Server

  4. For the Instance Name, we will need to navigate back to the Intuit Developer portal. The Instance Name is found on your company's sandbox page.

  5. On the top right page in the Intuit Developer portal, click on the User icon, and then Sandbox.
  6. This should open the Manage sandbox companies page, which you can then click on your sandbox.
  7. On the sandbox page, click on the gear icon located in the top right of the page, then click on Additional info.

    Additional info link in Intuit Developer portal

  8. Here you will find the Company ID which is what we will use for the Instance Name in Vinyl.

  9. Going back to Vinyl, configure the Instance Name, add the Security Provider we created under the Security Settings section.

    Adding the QuickBooks Security Provider in Vinylg

  10. Now that we have created the custom OAuth app, security provider, and datasource we are ready to test.

  11. Test the connection using the Test Connection button, and check the Allow challenge field.
  12. If everything has been configured correctly, you should see a success message. Now you are ready to import tables and work with this datasource.

Troubleshooting

If you are using Vinyl 3.2, and you see the following error when testing the connection you need to adjust the connection string:

Warning

[3100] message=ApplicationAuthorizationFailed; errorCode=003100; statusCode=403.

Adjusting the Connection String (only applicable to Vinyl 3.2 versions)

  1. Navigate to the IDE.
  2. Click on Additional Settings on the bottom of the page.
  3. From the Internal Settings tile, click on Database Type Providers.
  4. Scroll or search for Quick Books Online.
  5. Using the pencil icon, edit the Connection String to remove the space on "use sandbox={{ Sandbox }}" so it looks like: "usesandbox={{ Sandbox }}".
  6. Save the changes and test again, it should be successful now, assuming everything else is configured correctly.