4
votes

I am new to QuickBooks and all my searching has been leading to conflicting answers. I really need to know this to move forward.

We have an on-premise application (legacy MFC app if that matters). Some of our customers use QuickBooks Online and we can send information up to it. In the past we have used QBXML which I believe is not supported for online anymore.

Everything I read at intuit.com talks about web applications. I think I have to have OAuth security and I do not see how intuit is supporting that from a non-browser based application.

I cannot believe that intuit would not have an answer for this situation so I must be confused.

So, can I send data to QuickBooks Online from a desktop application? If yes, which API/SDK should I be using? If I need OAuth how exactly do I implement this? Does any of this require an independent security review?

I think I just need a little help getting pointed in the right direction. Thanks

1

1 Answers

3
votes

Unfortunately I think you have the most difficult scenario in the QB ecosystem.

I've used the DevDefined OAuth library with some success: https://github.com/bittercoder/DevDefined.OAuth

You can get this to work on the desktop if you have a localhost server that the browser can redirect to on the OAuth callback.

Anything that talks to QBO needs to use the QBO API v3 now.

For a custom app that talks to QBO, you would need to set up your app @ Intuit to run in development mode, so it wouldn't have to go through their security review, etc. But that limits the number of connections you can have (I think it's 10). So it might not work in your case. Also, if you're distributing your app to "normal" customers it may not be the best user experience, and probably isn't practical, to set it up so OAuth will work on the desktop.

You might just have to bite the bullet and create an intermediate web service on something like Azure or Heroku, then go through the whole process of getting Intuit to bless your app for production.