Create and start developing your app

Let’s get started. The QuickBooks Online Accounting API gives you incredible flexibility to build creative solutions for key business and accounting workflows.

Here’s what you need to set up to jump-start development.

Step 1: Get to know the QuickBooks Online Accounting API platform

Already familiar with our APIs? Feel free to skip ahead. If you’re new, review our platform’s capabilities so you can develop with confidence:

Step 2: Set up your developer account

Go to the Intuit Developer Portal and create a developer account.

This profile is where you’ll create apps, get app credentials, and set up sandbox companies for testing.

Step 3: Create an app on the Intuit Developer Portal

The apps you create on our developer portal generate unique credentials and info you’ll need during development.

  1. Sign in to your developer account.
  2. Select My Hub > App dashboard from the upper-right corner of the toolbar.
  3. Select the app card with a + to create a new app.
  4. Follow the on-screen steps.

When you create apps, you’ll pick your app’s scopes. Scopes limit the type of data your app can access. If your app only needs access to accounting data, select the accounting scope. If it also needs to access payment data, also select the payments scope.

Step 4: Create a sandbox QuickBooks Online company

When you create an Intuit Developer account, we give you a test company with sample data for you. We call this a sandbox company.

You can use this sandbox company to test your code. Here’s how to create additional sandbox companies.

Step 5: Learn how to get your app’s credentials

During development, you’ll need to use your app’s credentials for various tasks such as authorization.

Step 6: Authorize your app

Use your credentials (i.e., Client ID and Client Secret) to connect your app to OAuth 2.0. This grants access tokens your app can use to send requests to our APIs.

Want to make a quick sample API call?

You don’t need to fully authenticate your app to test requests. Here’s how to quickly call the CompanyInfo entity:


  1. Visit the OAuth 2.0 Playground.
  2. Select a sandbox company from the Select app dropdown.
  3. Follow the on-screen steps to get an access token. This is a temporary token for testing only.
  4. Copy the Access token and Realm ID (also known as the Company ID).

Next, create a sample request:


  1. Copy and use the sample cURL GET request below.
  2. Replace the REPLACE_WITH placeholders with the copied Access token and Realm ID values.
  3. Send the request.

GET CompanyInfo

1
2
3
4
curl -X GET 'https://sandbox-quickbooks.api.intuit.com/v3/company/REPLACE_WITH_SANDBOX_COMPANY_ID/companyinfo/REPLACE_WITH_SANDBOX_COMPANY_ID?minorversion=12' \
-H 'accept: application/json' \
-H 'authorization:Bearer REPLACE_WITH_ACCESS_TOKEN' \
-H 'content-type: application/json'

The response for your request should match the sample server response.

See a sample server response

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
   "CompanyInfo": {
   "CompanyName": "SandboxCompany_US_1",
   "LegalName": "SandboxCompany_US_1",
   "CompanyAddr": {
      "Id": "1","Line1":"123 Sierra Way","City":"San Pablo","CountrySubDivisionCode":"CA","PostalCode":"87999",
      "Lat": "36.6788345","Long":"-5.4464622"
   },
   "CustomerCommunicationAddr": {
      "Id": "1",
      "Line1":"123 Sierra Way","City":"San Pablo","CountrySubDivisionCode":"CA","PostalCode":"87999","Lat":"36.6788345","Long":"-5.4464622"},"LegalAddr":{"Id":"1",
      "Line1": "123SierraWay",
      "City": "SanPablo",
      "CountrySubDivisionCode": "CA",
      "PostalCode": "87999","Lat":"36.6788345",
      "Long": "-5.4464622"},"PrimaryPhone":{},"CompanyStartDate":"2018-03-02","FiscalYearStartMonth":"January","Country":"US","Email":{"Address":"noreply@quickbooks.com"},"WebAddr":{},"SupportedLanguages":"en","NameValue":[{"Name":"NeoEnabled","Value":"true"},{"Name":"IsQbdtMigrated","Value":"false"},{"Name":"CompanyType","Value":"Other"},{"Name":"SubscriptionStatus","Value":"TRIAL"},{"Name":"OfferingSku","Value":"QuickBooks Online Plus"},{"Name":"PayrollFeature","Value":"false"},{"Name":"AccountantFeature","Value":"false"},{"Name":"QBOIndustryType","Value":"Landscaping Services"},{"Name":"ItemCategoriesFeature","Value":"true"},{"Name":"AssignedTime","Value":"2018-03-05T19:40:40-08:00"
   }
   ],
   "domain": "QBO",
   "sparse": false,
   "Id": "1",
   "SyncToken": "8",
   "MetaData": {
   "CreateTime": "2018-03-02T01: 08: 21-08: 00","LastUpdatedTime":"2018-04-27T00:34:31-07:00"
   }
},
"time": "2018-05-04T14: 36: 43.747-07: 00"}
Step 7: Test your code

Check out QuickBooks and third-party testing tools you can use during development. We’ve configured tools, including Postman, to make testing with your sandbox company a little easier.