I firmly believe that an important feature of ANY
With that in mind, at the Sleeter Group Accounting Solutions Conference, Intuit announced several MAJOR changes in their policies for add-on product development for
- If you develop products for QuickBooks Desktop, use the SDK. This is a 180 degree change from what they’ve been saying for several years now.
- If you develop products for QuickBooks Online, they are dropping all developer fees. This is a significant move towards an “open API” to encourage developers to work with QuickBooks Online.
This is a major change in their approach to add-on products!
I have to say that I am truly surprised by this, these are things that I’ve been advocating for, along with many add-on developers, for years.
In addition to those major changes, Intuit also announced:
- The release of the IPP/QuickBooks API V3, which allows developers access to a more consistent, easy to use and global-ready programming interface.
- Intuit.Apps.com is now fully functional, taking over from the Intuit App Center, providing better app discovery features for consumers looking for add-on products
- Intuit has a partnership with American Express that will provide a tighter integration between QuickBooks products and the American Express small business “Receipt Match” product.
Let’s review how add-on products work with QuickBooks, what this new policy means for developers, accounting professionals and product users. There are a lot of complicated details!
QuickBooks Software Integration Until Now
Before we dive into the changes, let’s review how add-on products have been able to work with QuickBooks Desktop and QuickBooks Online over the years. There are a lot of different terms and abbreviations, and Intuit has changed their terminology several times, so it can be confusing.
Since around 2002 or so, Intuit has offered the “SDK” as a programming toolkit to work with QuickBooks desktop products (Windows only). You’ll see variations of this terminology, such as “QBSDK”, “QBXML”, and “QBFC”, which are all aimed at desktop products. There also is the “Web Connector” (which is different than “Web Connect” files) to allow a web application to connect to QuickBooks Desktop. The SDK is free to developers, but to have your product listed in the Intuit Marketplace you had to pay a fee of $1500 per product every three years, for validation testing.
In 2010 Intuit introduced a new programming interface, the Intuit Partner Platform or IPP, which was intended to replace the SDK as the preferred method of programming for BOTH QuickBooks Desktop and QuickBooks Online. I’ll admit, over the years, I’ve been a very vocal critic of many aspects of this programming interface. I didn’t like the pricing, the way it worked with QuickBooks Desktop, the tools you had to use, or the fact that Intuit was pushing desktop developers into this and away from the SDK. This was a Cloud based programming interface, which made sense if you were working with a Cloud product like QuickBooks Online, but not if you were working with QuickBooks Desktop.
Since IPP was first introduced, Intuit has modified it many times in response to feedback from developers. There have been many improvements (and many pain points). Also, the naming conventions changed over time. First it was called IPP, then we had Intuit Anywhere, and lately it has been referred to as the QuickBooks API. I’m going to stick with IPP for this discussion (it’s shorter).
Does that chart look more complicated? The original idea was that you would write ONE interface for your cloud application and it would work with both QuickBooks Online and QuickBooks Desktop. The connection between a cloud app and QuickBooks Online made sense – two cloud products working together.
However, To access the Desktop data the user has to install “Sync Manager”, an Intuit tool that copies your desktop database up into the Intuit cloud. This tool then keeps that cloud database synchronized with your desktop database. The add-on application then only has to communicate with the cloud storage. A seemingly simple concept, but Intuit struggled to make it work.
To make it worse, if you were writing a desktop app using IPP to get to the desktop data, your product had to go through the cloud database just to get to the data that was sitting right next to you on the desktop. I doubt that anyone did that.
You can follow the evolution of IPP, and see the details of how the SDK and IPP interfaces work, through the various articles we have written over the years. For example:
- What is the IPP and how does it compare to the SDK? by Chuck Vigeant. It gives you an early overview of the SDK and IPP interfaces.
- Evaluating QuickBooks Integration Applications by Bonnie Nagayama, an overview from a year ago that also talks about the SDK, IIF, and IPP interfaces.
- Intuit’s Direction for QuickBooks Add-On Software – Online! by me, which is a more up to date view of the IPP interface, globalization and the push to QuickBooks Online.
- The Demise of the QuickBooks Third Party Developer? by Chuck Vigeant. This was an exceptional article that generated a lot of discussion and controversy, as Chuck commented about the direction he saw Intuit taking, and why he was dissatisfied.
So What’s the Problem?
IPP came out in 2010, but only a small number of products have successfully made the transition, particularly when you compare the numbers to what you find using the SDK or with other companies like Xero. Why?
QuickBooks Online
When talking about integrating with QuickBooks Online via IPP the main conceptual problems that remain, in my opinion, are:
- You cannot access all of the QuickBooks Online data. It has been years in development, but significant elements of the QBO database have not been accessible.
- The cost of getting your app approved, and for accessing the data has been a burden on the developer. You have to pay $5.00 per month per each company file that a client has connected, as well as paying fees to get your application approved for the App Center.
Developers working with IPP will have other issues to add to my list, but these are the key ones that I see.
To me, the general concept of the IPP interface makes a lot of sense for working with QuickBooks Online. The older interface for QuickBooks Online was using an antiquated approach (SOAP), and moving to a more modern interface (REST) was the right thing for Intuit to do. I think that they have more work to do here, but from a technical standpoint they are heading the right direction.
QuickBooks Desktop
When talking about integrating with QuickBooks Desktop via IPP there are a number of problems, in my mind. The key issues, in my opinion are:
- The QuickBooks Desktop and QuickBooks Online databases are very different so it was difficult to write ONE application that could work with BOTH databases.
- You cannot access all of the QuickBooks Desktop data. This is a bigger issue with the Desktop product, since the SDK allowed access to a much larger range of data than IPP does. Not only this, developers were told that IPP would never reach parity with the SDK. That is a major limitation for many developers. Without access to all of the data, how can you write a utility like Karl Irvin’s Data Transfer Utility? Or a comprehensive reporting tool like QQube or Xpanded Reports?
- With two different versions of the database, the desktop and the cloud, which is the “source of truth”? Keeping two databases totally in sync, that are being updated from different directions, can be a nightmare. If the two copies of a data element don’t match, which version is right?
I have to say that I have a much longer list of issues with how IPP works with QuickBooks Desktop, but that would take an entire blog article by itself. The items I list above are the key problems.
I don’t think that it makes any sense for Intuit to try to bridge this old
Recognizing the Problems, Then Resolving Them
OK, so I’ve laid out what I think are the major shortcomings of the IPP interface. Will Intuit recognize these problems, and work to resolve them?
Last week at the Sleeter Accounting Solutions Conference, Intuit announced a number of changes in how they are working with developers. I’m excited about these changes, and in looks as though Intuit is addressing these major concerns.
As I’ve said in other blog posts, I’m Optimistically skeptical. I’m an optimist, as Intuit is saying a lot of the right things. They recognize that there are problems, and they are working on resolving them. However, as usual, I have a bit of skepticism. Will they be able to implement their plan? The details are important, and some of the details are still a bit vague at this time.
What This Means for Accounting Professionals and Users
The details are very complicated, and developers are interested in those, but what does this all mean for the people who USE QuickBooks and add-on applications?
- Intuit has made it easier for developers to come out with add-on products for QuickBooks Online. There is an improved interface, and Intuit has removed several of the big barriers that kept developers out of this market. We should see more apps for QuickBooks Online.
- Intuit is planning on providing more support for QuickBooks Desktop developers. The majority of the successful developers that work with QuickBooks Desktop are working with the SDK, and now Intuit is FINALLY recognizing that. We should see more SDK – based apps.
- Intuit.Apps.com provides a better user experience for finding apps, at least according to Intuit. However, will we be able to find SDK apps that way, or is it just aimed at QuickBooks Online? We’ll see.
- You are less likely to see products that work with both QuickBooks Desktop and QuickBooks Online. That is a guess on my part, I could be wrong. It can be done, AND there are good products that will work on both, but it takes a lot of work to make an application work with both products.
In short, the changes that Intuit has announced should help QuickBooks users (both desktop and online) by making it easier for developers to produce products.
What This Means for Software Developers
This is complicated, as there are so many variations and combinations. IN GENERAL, the changes are that Intuit is no longer going to charge for connecting an IPP app, AND they are no longer going to allow you to use IPP to access the QuickBooks Desktop product. Wow!
Here is Intuit’s chart on the changes.
The short description is:
- If you want to work with QuickBooks Online, you have to use the IPP interface, and it is free.
- If you want to work with QuickBooks Desktop, you have to use the SDK interface, and it is free.
Let me break this down a bit.
Working with QuickBooks Desktop
Intuit has made a major shift in how they want developers to work with QuickBooks Desktop. From this point on, developers will work with the QuickBooks SDK to access QuickBooks Desktop data. This is a huge change!
I was able to sit down and talk about this with Dan Wernikoff, a Senior Vice President at Intuit (see his comments to me about the Future of QuickBooks Desktop). Dan was very candid when discussing the SDK/IPP issue:
“What we have to keep in mind is that most of the our developers are still working with the SDK on the desktop. I think that is a mistake that I personally have made to not invest there, and try to push people into the platform that doesn’t have as much data and doesn’t have the same level of functionality.”
Wow! I’ve never heard something like that from someone at Intuit before. It is refreshing, and encouraging, to hear a someone in senior
Dan continued to say:
“One area where I think that we will beef up investment is on the SDK for the desktop. We used to try to have IPP solve everything for both platforms. So now we say, you know what, we know that’s not working, so why hold back Quickbooks Online by bridling it with this desktop and multiple sources of truth. So now that is split apart. But then, the moment you do that you have to think, ‘what are we going to do on the desktop?’ That really is the SDK primarily, so we will add investment there.
This means that we are going to have two separate ways to develop applications for QuickBooks: The SDK for QuickBooks Desktop and IPP for QuickBooks Online.
Of course, changes like this aren’t simple. What are the details? We don’t have all the answers yet.
For developers working with QuickBooks Desktop:
- If you are developing a new application to work with QuickBooks Desktop, you must use the SDK. Even if you are developing a cloud application you have to use this approach (using the Web Connector). New applications will not have access to the Desktop via IPP (although Intuit reserves the option to make a special contract with a larger vendor, like American Express).
- If you already have developed an application that accesses the Desktop via IPP you will be allowed to continue using IPP, but don’t expect to get access to any more data than you can now. Future IPP development will focus just on QuickBooks Online.
- If you develop an SDK based application we can hope for better support in the future. Of course, I’m optimistic that things will improve, but I’m still skeptical. Will the SDK bugs be fixed? Will the gaps in data access be filled? Those are details that haven’t been worked out yet.
- Developer support for SDK apps will be through Intuit’s developer forum. This hasn’t been great in the recent past, we have to hope that they put more resources in this area.
-
Your application will NOT be listed on Intuit.Apps.com, their new, updated portal for IPP apps. There are some open questions here – currently Intuit has the Intuit Marketplace, where desktop-integrated apps could be listed. In the past there was a fee ($1500/app for three years), but Intuit stopped accepting apps here awhile ago. Will Intuit start accepting desktop apps in the Marketplace again? Will there be a
marketing fee to be listed here? This is not settled at this time.
One one level, some developers are going to be unhappy with the change. They want to work with both QuickBooks Desktop and QuickBooks Online, and they want one interface with one technology to focus on. That makes sense, but it hasn’t worked. Trying to marry the desktop and online databases just hasn’t worked well and has held everything back. From a practical standpoint, this separation makes sense to me.
Availability of Data
Add-on programmers (like me) are greedy, we want access to ALL of the data. This has been a problem for IPP, more so than the SDK. Intuit has finally released to all developers what they refer to as the QuickBooks API V3 interface. Does this let you get to all of the data? Well, not yet, but they are getting close. Here is the latest “roadmap” for being able to access data in QuickBooks Online:
V3 is much more than just a list of data elements that you can access. It provides supports a “global
What about access to all of the data in QuickBooks Desktop? Well, we’ll have to see how that works out. For developers still using the IPP interface, you can’t expect to see more than what you have now. For developers using the SDK – well, we can hope. Intuit hasn’t announced any details here – I think they are still trying to work this out.
The Cost of Working with Intuit
Problem solved! Intuit announced that they will no longer charge a fee for using the IPP Interface with QuickBooks Online. This is a great change, it solves one of the barriers for developers to accessing QuickBooks.
Of course, as above, things aren’t always simple. Let’s dig into the details:
- If you are working with IPP and QuickBooks Online, there is no fee. No monthly charge per user connection, no fee to get your application approved to access the data and listed in Intuit.Apps.com.
- If you have an existing IPP application that works with QuickBooks Desktop, you will still have to pay a fee. It is nominal – $5 per month per company file connection, with a minimum of $1000 a year (a minimum of 200 connections). This isn’t a lot, when compared to the $5/month fee you’ve paid so far. Again, this is only for existing IPP apps access QuickBooks Desktop – new apps won’t be allowed to use IPP.
- If you are using the SDK to access QuickBooks Desktop there is no fee for connecting to the database, which is the same as it is now. There could be some fees involved in marketing arrangements, such as getting listed in a marketplace, but nothing has been settled in that area at this time.
Intuit has worked hard to remove this barrier to working with QuickBooks.
My Thoughts
I’m very surprised that Intuit made the change to go back to promoting the SDK for QuickBooks Desktop developers. I think it is a good thing, but only if Intuit beefs up support for SDK developers. There needs to be some sort of marketplace for SDK apps. There needs to be better support for SDK developer questions. They need to fix bugs and holes in the SDK, moving forward.
I am NOT surprised, as much, about the dropping of fees. I guess I was at first, but as you look at how the marketplace is going, and Intuit’s competition, it makes sense that they are doing this. This removes one of the big barriers to working with Intuit.
Again, as I wrote in my last article, I’m Optimistically Skeptical. I have great hopes that things will work out for the best, but I’m still waiting for the proof. Let’s see how Intuit implements all these changes.