How to Fix Authorization Dialog not appearing in QuickBooks Desktop

By: Chirag Rajpara
Updated: August 20th, 2021 | Technology: Asp.Net
quickbooks-desktop

The problem:

While working with one of my client’s projects which was an integration between QuickBooks Desktop & procurement software, I faced some strange issue never faced before. So far I have made many integrations with Quickbooks desktop using a web connector, but this time it was a different approach for integration. I prepared a console application to connect with the Quickbooks desktop.

I faced an issue with QuickBooks desktop’s Authorization mechanism through which it allows third party applications to access the data in QuickBooks desktop.

The integration was working fine on different environments of staging, production & client’s servers for more than 6 months. But suddenly one of their end clients reported a bug as whenever the console application runs QuickBooks was not able to display a popup for authorization & authorization to access the QuickBooks company file as below reference image. But it did not appear on the end client’s windows based server & it generated issues for us.

Hereby I am sharing what kind of approach I tried to solve the problem. After finding the solution it was a very simple thing, but when it comes to making my application run on the client’s windows server, I had very limited rights to make any changes in QuickBooks desktop running in multi user mode & that was a real challenge to overcome.

What is QuickBooks Desktop?

QuickBooks is an accounting software which works on all your day to day financial actions attached to your own business. It has a variety of versions as per your needs & QuickBooks Desktop is one of them which is mostly suitable to the enterprise businesses.

QuickBooks Desktop has a list of features including sales management to vendor payments & also providing a variety of business reports, sharing the estimations, managing the inventories & many more.

Purpose of connecting QuickBooks Desktop:

I wanted some data to be automatically synchronized with Cloud based enterprise procurement software.

Before moving forward, let’s first look at how the QuickBooks Authorization process works.

Step 1:

When the Windows application begins a session with Quickbooks desktop, you should see the following type of authorization dialog.

When application programmatically starts “begin session” then authorization dialog or popup appears which will allow you to connect with the currently running QuickBooks company file.

**Note: I do NOT call this authentication dialog, because QuickBooks desktop doesn’t require my application to have mandatorily ask for username and password of quickbooks.

Purpose-of-connecting-QuickBooks-Desktop

You can see 4 options to choose from as per above screenshot. Clicking on the selected option, will show you access confirmation dialog as shown below.

Identifying solution for authorization dialog not appearing.

It’s a pretty straightforward authorization process from QuickBooks desktop as per above paragraph, but it did not work as expected in one my client’s cloud hosted QuickBooks desktop windows server & that was an error or blockage for me.

While the client was running my windows based console application the QuickBooks authentication dialog was not appearing. So below are the different approaches which I used to debug and find out the cause.

  1. Check the log files: I did check my log file, which would simply say that Could not start QuickBooks
  2. I tried running my console application as administrator.
  3. I tried restarting the QuickBooks which did not help.
  4. I tried to open a sample QuickBooks company file, but that did not work either.
  5. Then I checked my application configuration file & found a misconfiguration mentioned below: Misconfiguration: Issue was within the connection string in the JSON file & it was not able to connect to the network because the connection string did not have string escaping for the special characters. Resolutions of misconfiguration: Changes were made on the connecting string by adding extra ‘/’. Below is the wrong & the correct connection strings for better reference.Wrong Connection String:

    We had confirmed with the jsonlint.com website for the json format.

    Correct Connection String:

    We again confirmed with the jsonlint.com website for the json format.

  6. I wanted to try and run other third party application and see if it’s working, but unfortunately I didn’t have permission to install anything apart from my console application. I tried to convince my client but it didn’t work because of strict policy from system admin and operation manager from their company.
  7. Then I thought to check if the settings in QuickBooks are allowing third party applications to connect with it. Screenshot

    But that took a little longer for me as I found that the client didn’t give permissions in their QuickBooks setting. Hence I requested clients to update permission. The clients couldn’t do it immediately because the company file was running in multi user mode. And they can not stop their work in the middle of the day or week. So it has to be done after business hours & it took a lot of my time.

  8. Even after applying permission as per above step, it didn’t work.
  9. Finally we decided to took a different route, and tried to use a web connector with a fake company file. And see if the web connector was able to open the authorization dialog which I was hoping would work, but it didn’t. Again faced the same blockage & stuckpoint was the same for me, “Authentication Dialog was not popping up”.
  10. After doing some more research I found that there are many QuickBooks services which are running in the background on the Windows server. We had to kill them because Restarting only QuickBooks was not sufficient. Below is a list of services which you may consider to kill.
    • QuickBooks Desktop App
    • QBIDPService
    • QuickBooks Automatic Update
    • QBCFMonitor Service

Finally after all the debugging & steps, with hopes I opened QuickBooks desktop again and repeated my process of adding connection in the web connector. To my surprise this time Web connector showed up that authorization dialog, and then my console application was also able to open the same.

If you are curious to know how to make a fake QuickBooks web connector file for testing? Here is the downloadable .qbw file. Download now . if you are wondering what is inside then here is a preview of connection file data.

Conclusion:

In the end I learned that I should have started debugging for the problem by using the QuickBooks web connector, because it provides pretty descriptive error and its solution. I hope reading this will make you aware about how to debug similar kinds of issues and what are different ways you can try to approach this problem.

Do you need help with a Quickbooks integration service provider who Expert in Accounting integration? here to help you!

Book Free consultation Call

Something about myself:

Chirag Rajpara
I am a ASP.NET core developer with vast experience in the IT industry & working around QuickBooks Online & Desktop every single day. I learned QuickBooks 3 years back, with QuickBooks I learned many accounting principles & basics of finance. At satva we like helping people with their problems around accounting software. Do get in touch Here if you need any help or expert consultation.