Before you start

What kinds of integrations are possible with the SDK?

If you are scoping out a potential application, you’ll want to know the kinds of integrations that are possible with the QuickBooks Desktop SDK:

Which QuickBooks editions/versions will support my applications?

The release notes provided with the QB SDK package include the latest tables listing the QuickBooks versions and editions and the corresponding level of the qbXML spec that they support. Please refer to the release notes for those details.

The SDK provides methods for querying which version of the qbXML specification is supported by the version of QuickBooks that is currently running on the user’s system. (The QBXMLVersionsForSession) method can be called after the session begins.) If you write “smart” code that checks the version and responds accordingly, your application can run against multiple versions of QuickBooks.

What do I need to know before I start programming?

You need to know the functional area of QuickBooks that you intend to access in your application. You need to know how the QuickBooks UI operates in that area: what you can do in the UI and what you cannot do. In general, the functionality available through the SDK mirrors the functionality available in the QuickBooks UI.

What technologies should I be familiar with?

The QuickBooks Software Development Kit (SDK) uses standard interfaces and formats. To use the SDK, you’ll need a sound understanding of the following:

Take a look at some QuickBooks SDK sample code for specifics.

Which programming languages can I use?

The QuickBooks SDK is designed for use by a wide variety of developers in many different development environments. Its application programming interfaces (APIs) can be used by any programming language that is compatible with Microsoft’s Component Object Model (COM).

What kind of technical support is available?

The best source of additional information are the forums, knowledgebases, and FAQs that are provided free of charge at If further assistance is required, use the technical support links provided at that site to contact technical support.