Skip to content
Switch branches/tags


Failed to load latest commit information.
Latest commit message
Commit time

SDK Banner


Help: Support, Samples
Documentation: User Guide, JavaDocs
Continuous Integration: Build Status
Maven: Data Devkit
License: Apache 2


The QuickBooks Online Java SDK provides a set of Java class libraries that make it easier to call QuickBooks Online APIs, and access to QuickBooks Online data. Some of the features included in this SDK are:

  • Ability to perform single and batch processing of CRUD operations on all QuickBooks Online entities.
  • A common interface to the Request and Response Handler with two implemented classes to handle both synchronous and asynchronous requests.
  • Support for both XML and JSON Request and Response formats.
  • Ability to configure app settings in the configuration file requiring no additional code change.
  • Support for Gzip and Deflate compression formats to improve performance of Service calls to QuickBooks Online.
  • Retry policy constructors to help apps handle transient errors.
  • Logging mechanisms for trace and request/response logging.
  • Query Filters that enable you to write Intuit queries to retrieve QuickBooks Online entities whose properties meet a specified criteria.
  • Queries for accessing QuickBooks Reports.
  • Sparse Update to update writable properties specified in a request and leave the others unchanged.
  • Change data that enables you to retrieve a list of entities modified during specified time points.

Project Structure

  • ipp-v3-java-data - contains all entities and entity dependencies that are used in data services operations.
  • ipp-v3-java-devkit - core component, contains REST API support.
  • ipp-java-qbapihelper - contains QuickBooks Online API Helper methods for OAuth, Disconnect and Reconnect API. [This artifact is deprecated with v6.0.0]
  • oauth2-platform-api - contains QuickBooks Online API Helper methods for obtaining OAuth2 tokens, Disconnect and Reconnect API for OAuth2 apps.
  • payments-api - Payments SDK for V2 API, contains methods for charge, echeck, token, card and bank account APIs.

System Requirements

The SDK works on JDK 1.7 and above.

First Use Instructions

  1. Clone the GitHub repo to your computer.
  2. Import it to the IDE of your choice.

Testing the Code & Building Artifacts

To test the code locally, follow the steps below:

  1. cd to the project directory
  2. Run the command: mvn install - this will run the unit test, build the project and generate data, devkit, qbapihelper(OAuth1.0a), oauth2-platform(OAuth2) jars

Note: To build out individual components such as ipp-v3-java-data.jar or ipp-v3-java-devkit.jar, remove parent dependency from the pom.xml of the respective projects and run maven install on the individual project folders.

Release Notes

Refer to Java SDK Release Notes.


We greatly encourage contributions! You can add new features, report and fix existing bugs, write docs and tutorials, or any of the above. Feel free to open issues and/or send pull requests.

The master branch of this repository contains the latest stable release of the SDK, while snapshots are published to the develop branch. In general, pull requests should be submitted against develop by forking this repo into your account, developing and testing your changes, and creating pull requests to request merges. See the Contributing to a Project article for more details about how to contribute.

Steps to contribute:

  1. Fork this repository into your account on GitHub.
  2. Clone your forked repository (not our original one) to your hard drive with git clone
  3. Design and develop your changes.
  4. Add/update unit tests.
  5. Create a pull request for review to request merge.
  6. Obtain approval before your changes can be merged.

Note: Before you submit the pull request, make sure to remove the keys and tokens from that you might have added for testing.

Thank you for your contribution!