Quickbooky

Accounting News

SDK & Integration

QuickBooks SDK 13 Shows Only qbXML Version 2.1 Despite Newer SDK

QuickBooks SDK 13 users find HostQuery reports qbXML support only up to 2.1. The fix requires switching to the Interop.QBXMLRP2 library.

QuickBooks SDK 13 Shows Only qbXML Version 2.1 Despite Newer SDK

Developers building custom integrations with QuickBooks Desktop sometimes run into a puzzling mismatch: the SDK they installed says it supports qbXML version 13.0, yet a simple HostQuery returns only versions 1.0 through 2.1. A community member recently posted about this exact scenario while working with QuickBooks Enterprise 16.0 and the SDK version 13. The good news is that the issue is a library reference problem, not an SDK installation failure, and the fix is straightforward.

The Issue

The user had a homemade C++ application that communicated with QuickBooks by receiving an XML string over a network port. The app used qbXML version 2.1 and was talking to QuickBooks Enterprise 16.0 without obvious problems — until the developer ran a HostQuery. The response showed that the maximum supported qbXML version was 2.1, even though Intuit’s release notes for Enterprise 14.0 list compatibility with qbXML versions up to 13.0. This meant the developer could not access newer qbXML features introduced after version 2.1.

Symptoms

The primary symptom is that a HostQuery request (or any qbXML request) returns a list of SupportedQBXMLVersion elements that stop at version 2.1, regardless of which version of the SDK is installed. Another sign: if you are using sample code from the SDK test files (such as sdktest), you may see the same limited version support. The application runs and processes requests, but it cannot use any qbXML elements or attributes introduced after version 2.1 — features such as newer report filters, list modifications, or transaction-level details.

Affected Products

This issue has been reported with QuickBooks Desktop Enterprise 16.0 and the QuickBooks SDK version 13. However, it likely occurs with any combination where the developer uses the older QBXMLRP.dll library, which is still present in the SDK installation folders. The SDK ships with two key libraries: QBXMLRP.dll (older, limited to qbXML 2.1) and Interop.QBXMLRP2 (newer, supporting all qbXML versions up to the SDK’s maximum). If your project references the wrong one, you will see the same limitation.

The Cause

The root cause is a reference to the wrong type library. Sample code bundled with the SDK imports the QBXMLRP.dll DLL, which supports only qbXML versions 1.0 through 2.1. Even if a developer installs SDK version 13, the sample code — and any code copied from it — will continue to use the old library unless explicitly changed. The QuickBooks SDK Programmer’s Guide explicitly advises using Interop.QBXMLRP2 for full version support. In Visual Studio, this means creating a new CLR C++/CLI project, adding a reference to Interop.QBXMLRP2 (which can be found via the Browse feature in the common folder), and replacing all references to QBXMLRP.dll with the new interop library.

Another contributing factor: the qbXML version declared in the request header may itself be outdated. The supporting answer in the community thread points out that simply changing <?qbxml version="2.1"?> to <?qbxml version="13.0"?> can also resolve the symptom, but this alone won’t work if the underlying library still caps the supported versions.

The Solution

The accepted solution, tested by another community member, involves two steps:

  1. Switch from QBXMLRP.dll to Interop.QBXMLRP2. In Visual Studio, create a new CLR C++/CLI project (or modify your existing one) and add a reference to Interop.QBXMLRP2. Then replace all #import statements or COM references that point to QBXMLRP.dll with the new interop library. The new library supports all qbXML versions up to 13.0 (the maximum of SDK version 13).

  2. Update the qbXML version in your request XML. Change the <?qbxml version="2.1"?> processing instruction to match the highest version you need (e.g., "13.0" if your SDK supports it). This ensures QuickBooks interprets the request with the correct feature set.

After making these changes, run the HostQuery again. The response should now list SupportedQBXMLVersion entries ranging from 1.0 through 13.0, unlocking the newer qbXML functionality you need.

Additional Notes

Some developers have successfully avoided the full project conversion by simply importing Interop.QBXMLRP2Lib.dll directly, but the accepted solution recommends the cleaner approach of using the new interop library. If you run into trouble, the SDK sample for HostQuery provides a good starting point for testing.

For further guidance on QuickBooks SDK integration, our QuickBooks users knowledge base has articles on setting up custom integrations. If you encounter problems with damaged company files during development, QuickBooks File Repair offers tools to recover from corruption. And if you ever need to condense or convert your company file after extensive testing, SuperCondense can help.

The bottom line: if your QuickBooks SDK application seems stuck on an ancient qbXML version, check your library reference first. Upgrading to Interop.QBXMLRP2 and updating the version string will get you back on track.

← Back to Community Issues