# QuickBooks Online Plugin

This article will walk you through setting up the QuickBooks Online plugin.

***

### Migrate to OAuth 2.0 <a href="#quickbooksonlineplugin-migratetooauth2.0" id="quickbooksonlineplugin-migratetooauth2.0"></a>

{% hint style="danger" %}
**As of December 17th 2019, All existing Quickbook Users need to Migrate to OAuth 2.0. Below are the steps needed to take to Migrate to OAuth 2.0**
{% endhint %}

* [Log into your intuit developer account](https://developer.intuit.com/app/developer/homepage) and click **My Apps**

<figure><img src="/files/cIySAyMUaGedO7rkwyoR" alt=""><figcaption></figcaption></figure>

* Click on your existing app or create a new app if you do not have one listed

<figure><img src="/files/VRvllWn3oYaj5Rbfg8vf" alt=""><figcaption></figcaption></figure>

* Navigate to the **Production** section and click on **Keys & OAuth** This will expose your **Client ID** and **Client Secret**
* Note that before displaying Keys, Quick Books may require an app assessment to be completed. Fill this out to the best of your ability.

<figure><img src="/files/1VKNmzCGp0vWMI0tfvFr" alt=""><figcaption></figcaption></figure>

* In the same **Production** Section, Please scroll down to **Redirect URIs** and click **Add URI**. Enter **<https://api.konnektive.com/oauth/quickbook/>**

<figure><img src="/files/WTSXTa5fEik3wMDlSHvd" alt=""><figcaption></figcaption></figure>

### Add OBO keys into CRM plugin <a href="#quickbooksonlineplugin-addobokeysintocrmplugin" id="quickbooksonlineplugin-addobokeysintocrmplugin"></a>

Now that you have obtained your Production Keys we can now input them into the CRM Plugin.

Navigate to **Admin** → **Plugins** → **Accounting**. Select **Quickbooks** and hit the Green **+ button** to add an instance of the plugin.

<figure><img src="/files/rfksngvM22j6iyXA1Y9S" alt=""><figcaption></figcaption></figure>

* Enter the **ClientID** and **ClientSecret**

<figure><img src="/files/LyxY5LLjvDiCyZ0IF4je" alt=""><figcaption></figcaption></figure>

* In the QuickBooks Advanced Setup screen, confirm the **ClientId** and **ClientSecret** are entered then click the link to authorize Checkout Champ to access your app.

<figure><img src="/files/c7pROYDSwtmI8GoBl7td" alt=""><figcaption></figcaption></figure>

* When the CRM has been Authorized to access your app you’ll notice that the **RefreshToken** field is populated and the **“Refresh token is required”** warning (from the previous screenshot) disappears.

<figure><img src="/files/oRpsZvogryfDFm0OoOaZ" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**The lifetime of the refresh token is 100 days. You will need to re-authorize the CRM connection using the link in the Plugin setup.**

ERROR: Please refresh the page. If this issue persist please reauthorize the CRM for accessing your QuickBooks account. ERROR DETAILS: Refresh OAuth 2 Access token with Refresh Token failed. Body: \[{"error\_description":"Token invalid","error":"invalid\_grant"}].
{% endhint %}

Now that the **ClientID, ClientSecret**, and **RefreshToken** fields are populated, feel free to configure the plugin to fit your use case.

**DefaultTaxCode** is required.

### Apply Gateway Routings <a href="#quickbooksonlineplugin-applygatewayroutings" id="quickbooksonlineplugin-applygatewayroutings"></a>

<figure><img src="/files/Zw9gRycIAoIOtNV692YU" alt=""><figcaption></figcaption></figure>

### Apply Product Routings <a href="#quickbooksonlineplugin-applyproductroutings" id="quickbooksonlineplugin-applyproductroutings"></a>

<figure><img src="/files/Avmo7M80j1N44huupWDn" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.checkoutchamp.com/crm/plugins/accounting/quickbooks-online-plugin.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
