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:
- 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.
- 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.
- 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.
- 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.
Alternatives to the Web Connector
- 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.
- 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.
- 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.
- 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.
- 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.