low price cialis

QuickBooks Web Connector: When To Use It

November 19, 2011 | By

I’ve received quite a few inquiries lately about how to integrate web-based applications with QuickBooks. In cases where the query comes from another software developer  one question comes up almost every time: Should I use the QuickBooks Web Connector to do this?

The short answer: I would only use the QuickBooks Web Connector if I was creating a web application (shopping cart, etc.) that is available to the general public, and is intended for use by a large number of QuickBooks users.

Now the long answer. This is not just for developers, but for any QuickBooks user who needs a better understanding of what the Web Connector is and how it can be used.

A Brief Overview of the Web Connector

First, a quick overview of what the QBWC is. It’s a tool provided free of charge by Intuit with Windows desktop versions of QuickBooks. The QBWC is one way of helping web sites, such as online shopping carts, communicate with QuickBooks. It runs on the user’s desktop computer and acts as a messenger, routing messages between the web site and QuickBooks. It can also be configured to run automatically, for example, every 15 minutes. One of the most popular uses of the QBWC is for online shopping carts to download orders to QuickBooks (or QuickBooks Point of Sale), and in many cases upload new product information from QB to the web site.

Why do we need a special program for this? Why can’t the web site talk directly to QuickBooks. The reason is security. It is dangerous to allow web sites to initiate a connection to your computer. So the connection has to be initiated from your computer. The QBWC performs this function. It starts the conversation (on demand, or according to the preset interval) by asking the web site if there’s anything it wants QB to do. The web site responds by sending a specially-formatted message to QBWC, which it then forwards to QB to be processed. For example, the web site might say, “Yes, please insert these 7 new orders into QB”. QBWC then receives the response (such as success or error) from QB and returns it to the web site. Based on that response, the web site decides what its next request will be, until it eventually responds to the QBWC by saying, “OK, I’m all done!”

As you may have realized from the description above, using the QBWC with a web site requires that the web site understands how to communicate with it, and with QB. In other words, it’s up to the developers of the web site to decide whether or not they will work with the QBWC. It isn’t something that can be set up from scratch by the QuickBooks user.

How to Use It

This isn’t intended to be a complete explanation of how to make your web site work with the QBWC, but here are some of the main tasks involved:

  1. Add special programming to the web site to communicate with the Web Connector. This includes providing methods for the QBWC to log in to the web site, ask for new requests, and return responses from QB.
  2. In addition to communicating with the QBWC, the web site needs to know how to format the request messages that will be sent to QuickBooks, and how to interpret the responses.
  3. Provide one or more pages on the site for QB settings. For example, the web site might need to know the QB sales tax item or shipping item to use for online orders.
  4. Create a QBWC configuration file and a link for the user to download it. This is a file that the user will import into QBWC in order to set up the connection with the web site.
As you can see, this requires a lot of intimate QuickBooks knowledge on the part of the web site developers.

Alternatives to the Web Connector

There are many ways to integrate other systems with QuickBooks, but when we’re talking about the QBWC specifically, two alternatives stand out:
  1. Create your own “Web Connector”. This is a custom program that you create that resides on the QB user’s desktop. While this still requires knowledge of how to communicate with QB, it eliminates the needs to learn and follow the QBWC’s communication protocol. It also allows you to define the conversation between this program and the web site. For example, the web site could have a method called “GetNewOrders” which would return all new orders, or orders created after a certain date. This method could be called from any program that has permission to do so, not just the QuickBooks interface. Also, the intimate knowledge of QB is encapsulated in the program and isn’t cluttering up the web site.
  2. IIF files. This is an old, and not very well supported, method of importing data into QB. IIF files are tab-delimited text files that can be viewed and edited with Excel. The web site w0uld need to know how to format IIF files, but this is much easier than talking to the QBWC. IIF files might be a good starting point for web developers who want to export data to QB, but the major drawback is that the communication is one-way, which makes it difficult to respond to exceptions. For example, if you download an order but have trouble creating or finding the customer in QB, it will be impossible to import the order. The web site would be unaware of this and would think the order was successfully downloaded.
  3. Intuit Anywhere. This is Intuit’s latest attempt at exposing QuickBooks data to web site developers. The idea is that Intuit maintains a copy of your QuickBooks data in the cloud, which is kept in sync with your desktop QB file. This method does require more knowledge of the inner workings of QuickBooks, but is probably a little easier for the user to set up, since Intuit provides instructions and processes to handle it. Intuit Anywhere is currently only available for applications being sold to the general public, and not for custom applications.
Pros and Cons of the Web Connector
The information above can be summarized into the following Pros and Cons of using the QuickBooks Web Connector:
Pros:
  • The Web Connector is free, and is installed automatically with QuickBooks for Windows editions (Pro, Premier, Enterprise).
  • The Web Connector can be used to connect QuickBooks to multiple online services.
  • The only setup required on the user’s desktop is to download the web site’s QBWC settings file and import it into QBWC.
  • The Web Connector is supported by Intuit.
Cons:
  • Setting up a web site to work with the QBWC requires specialized programming and knowledge of QuickBooks. The alternatives also require specialized QB skills, but to a lesser degree.
  • If the web site communicates with several other accounting or ERP (Enterprise Resource Planning) systems, it could get cluttered up with a lot of code that must be updated whenever one of those external systems changes. (Intuit does a pretty good job of making QuickBooks backward-compatible, but still…)
  • Unless the web site has a large number of QuickBooks users or the QB integration is mission-critical to your business, it may be difficult to recover your development costs.
  • The Web Connector is supported by Intuit. Yes, that can be a “con”, too. Although I’ve only seen one problem a few years ago where an update to the Web Connector made it stop working with QB Point of Sale, the fact is that if Intuit does something to break the QBWC, you’re dead in the water. The solution in this case is usually to keep a copy of the previous version of the Web Connector and provide that to your users in case they have a problem. This can turn into a support nightmare.
To repeat the conclusion I gave at the beginning of this article: I would only use the QuickBooks Web Connector if I was creating a web application that is available to the general public, and is intended for use by a large number of QuickBooks users. Especially for a custom web application, I would recommend decoupling the web site from QuickBooks by creating a desktop application. It provides a point of integration that’s much easier to change later, if necessary.
I hope this has been helpful to anyone considering using the Web Connector or connecting a web site to QuickBooks. Please feel free to add a comment or send me your questions.

Filed in: Uncategorized

About the Author (Author Profile)

Comments (31)

  1. William LAperch

    I am writing an app for a client that needs certain data out of quickbooks every night. He has 60 clients. What is the best way to program this. I am thinking of a vb app that installs a scheduled task that runs every night and uses https to transmit back to the server.

    • Mike

      It’s not clear what you’re using https for. Are you sending the QB data to a web server? Other than that, the scheduled task sounds like the right approach.

  2. Hi Mike,

    First of all its a good article you have written about When to use QBWC. I am a salesforce developer and I am trying to integrate salesforce with QuickBook 2011. I have worked with web services and applications. I need your suggestions on which process should I follow make this integration/data synchronization between salesforce and Quickbook sucessfull.
    Note: Salesforce supports WSDL based web service calls as well as simple CSV based data import export too.

    • Mike

      For custom integrations my preferred solution is to create web services in SF that you can call from a desktop app. That app would also use the QB SDK to talk to QuickBooks.

      I don’t think there’s a way to use the QB Web Connector with SF because you can’t perform the necessary authentication to call SF web services from the Web Connector.

  3. Hi Mike,
    I would like to thank you for doing such a good job.

    Most important information for me was QWBWC does not works with SF web services as it will not be able to perform the necessary authentication to call SF web services. I am thinking of building a desktop app to connect QB and Salesforce. I would like to have your suggestions and recommendations on
    1. Which platform to use(Java/VB.Net) for building this app?
    2. What is the authentication process between SFDC and QB SDK?
    3. Where could we have a good reference for all my queries?

  4. Dan

    We have a .NET web application, not running as SaaS but installed locally at each of our customers. Data is stored locally in MS SQL Server at each customer. Do you think we should write a desktop app using QB SDK to do our imports into QB? Thanks in advance for your thoughts. Good article.

  5. Thomas

    I want to write a custom QB web connector, where can I find the resource about how to communicate with QB desktop from another desktop application ?

  6. Dinkar

    Hi MIke
    Thanks for giving such example
    I am a .Net Developer I need to create web Application for quick for only Accounting purpose that Clients Requirement.
    I did all RnD on QBWC with there given Example. but this example is not working with Ajax for getting and sending Respone from Quick books. In that example they are using doquery for that but it not working. do you think any other way to do the same using web connector

    • Mike

      I’d have to see your code to understand what the problem is (and sorry, I don’t really have time for that). But it sounds like you might need to build your own desktop application instead of using QBWC.

      • Dinkar

        Hello Mike,
        Thank for the reply , My Client have already Desktop
        Application integrated with Quick book and They need Web Application to manager there Accounting and Invoice and Customer details that I am already creating Application.
        So I need to Quick Book online to access.

        Also I have one question in that QBWC is only Used Javascript or any otherway to do?

        • Mike

          Sorry, I really don’t understand what you’re trying to say. I have no idea how you would use QBWC with Javascript. If you’d like some help with your project, please email me directly and maybe we can arrange for a paid consulting project.

  7. Hi Mike,

    I have an e-commerce site that I have successfully integrated with an installed version of QuickBooks via the webconnector. Now can I use the same asmx service that webconnector uses to integrate with the online/hosted version of QuickBooks?

    Thanks

    • Mike

      Hosted, yes. It’s the same software as desktop (although not all hosting providers support this). But online would require some changes.

  8. Hi mike,

    I signed up to the intuit developer network. I see there are two options available Intuit Anywhere and the Intuit Data Services. Which of these should I look at to be able to integrate with the web connector service that I already have?

    Is the Intuit Data Services currently available. Any help to get me started is much appreciated. I’m looking at building a quickbook online plugin for the Nopcommerce application and like to leverage as much of the web connector functionality that I currently have implimented.

    Thanks
    RR

    • Mike

      IDS is part of Intuit Anywhere, so you would use both.

      If you’re using the QuickBooks Web Connector now, Intuit Anywhere would replace that. I suppose you could build an application to use one or the other, but it would be a lot of work to support both. From a development perspective it would be like switching from one database to another, for example from SQL Server to Database.com. There may be some similarities, but there will also be differences. It would take a long time to explain all the differences – you just have to work through the documentation and samples on the IDN web site.

      One important thing to be aware of: If you are storing QB ListIDs or TxnIDs (internal record IDs) in your own database, those values change when you go from desktop QB to Intuit Anywhere. So if you are accessing a customer’s desktop data using QB Web Connector, and they have a customer in QB with ListID 123, but later you access the same customer’s data through Intuit Anywhere, that same QB customer might now have a ListID of 456. Actually it’s not quite that bad, and in some cases you can map one to the other, but you do need to be aware of it if you’re transitioning to Intuit Anywhere. A good discussion of that can be found here.

  9. Rathila

    In my project I want import invoice data from a website to quickbook desktop application. Which one you suggest to use

    Web connector or create a custom desktop app using quickbooks pro 2012

    • Mike

      Both would work. If you’re developing something that will be used by many companies that use QB I would recommend the Web Connector for this, or you could look at the newer option which is the Intuit Partner Platform.

      If this is only going to be used by one company, my personal preference would be to create a desktop app, then create a simple web service that it can call to get the invoices from the web site. It’s less work for the developer but requires a little extra work to set up the desktop app.

  10. Tim Lansbergen

    Is it possible to create an mobile/tablet app with intuit anywhere to edit data in quickbooks from a different location?

    • Mike

      Yes, it’s technically possible, but I don’t know if anybody’s done this yet with Intuit Anywhere. I think Intuit’s expectation is that developers will create web services that talk to IA rather than desktop or mobile apps, although I have successfully connected to IA from a desktop in a dev environment. You would have to check Intuit’s developer policies and possibly contact them to see if you could get a mobile app approved to connect to IA directly.

      • Tim Lansbergen

        Mike, Thanks for your fast response. I think it is easier to use the quickbooks web connector for editing data in Quickbooks from a different location. I’m just searching for a solution to edit data on quickbooks from a different location? By a webpage or app doesn’t matter.

        Kind regards,

        Tim

  11. Neeraj

    Can you help me with online documents that can show how to update Quick Book Online (not quick book desktop application) with webservice. According to my initial study it seems like QBWC(web connector) can be use by web service to update Quick book application installed on one desktop. I want to know is utilities built to update Quick book online account. I am new to java and quick book so please let me know if I am not clear with my question

    • Mike

      Well, that’s a big question, and probably not something I can answer here. But check the documentation on the Intuit developer site. For QuickBooks Online I would not use the QB Web Connector. If you are developing a commercial product, you might want to look at the Intuit Partner Platform, which is the preferred choice for new applications. But they don’t support custom apps yet, so you would need to use the SDK if it’s a custom app.

      In the SDK Programmer’s Guide (installed with the SDK), you should look at 2 chapters: “Accessing QB Online Edition from the Desktop” and “Accessing QB Online Edition from Hosted Applications”. Select the appropriate one, depending on whether you’re building a desktop app or doing this as part of a web-based app.

  12. watson

    I have one desktop application with SQL as backend. I want to push items, bills,customer,vendors etc data to Quickbook 10.0 Enterprise and same time to generate reports and show in my desktop application(C#). QB is installed in the same network and i would like to create a we service to access QB. What is the best to achieve this? Is that would be like this ? Windows App -> Call web service (Which is hosted in the machine where QB resides through WebConnector) ?

    • Mike

      If you have a desktop app on the same network as QB Enterprise, I think the best approach would be to use the QB SDK in that application to connect to QB directly, without creating a web service. That sounds like the easiest approach based on the information you provided. Have you considered that approach?

  13. watson

    Are you asking me to connect to the company file directly by giving pointing to the QB database file? All the samples use COM objects to connect to QB. Not a single sample shows where do the specify the Company file in the application? I am bit confused about this SDK samples. They all use “RequestProcessor” to connect to QB. where does the actual connection property resides?

    Where do i mention about the machine which has QB installed and etc?

    • Mike

      Yes, the SDK uses the COM objects, not a web service, to connect to QB.

      • watson

        Thanks for your time and valuable information.

        Any idea where to specify the network path information for the company file which resides in the network?

        • Mike

          It’s probably better to ask for detailed help in the Intuit developer forums. But to answer your question briefly: With a desktop SDK application, you do need to have QB installed on the computer where the app is running. If you use the QBFC convenience library (which I do), you can call OpenConnection2 with a blank company name. Then it will open the company file that’s currently open in QB. Your program can then get the company file name from the QBSessionManager object and save it for future calls to OpenConnection2. That way, you don’t need to have QB running the next time you run your app.