Create, set up, and start developing your app

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

Before you can start developing, here’s what you need to set up.

Step 1: Get to know the QuickBooks API platform

Already familiar with our APIs? Feel free to skip ahead.

If you’re new, review these resources 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 to connect to our servers, and set up sandbox companies for testing.

Step 3: Create an app on the Intuit Developer Portal

The apps you create on the developer portal generate the credentials you’ll need for tasks like authentication.

  1. Sign in to your developer account.
  2. Select the Dashboard tab on the toolbar.
  3. Go to the Apps tab.
  4. Select + Create an app.
  5. Follow the on-screen steps.

When you create apps, you’ll need to pick your app’s scopes. Scopes limit the type of data your app can access.

Pick the scopes that are relevant for your app and app’s users.

Step 4: Create a sandbox QuickBooks Online company

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

During development, you can use this sandbox company to test your code. Follow these steps to create additional sandbox companies.

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

You need to get your app’s credentials to authorize and connect it to our servers.

Step 6: Authorize your app

Use the Client ID and Client Secret to connect your app to OAuth 2.0. This process grants access tokens so your app can send requests to our servers.

Want to make a quick sample API call?

Before you fully authenticate your app, here’s how to quickly make a practice API call:

  1. Visit the OAuth 2.0 Playground.
  2. Select a sandbox company from the Select app dropdown.
  3. Follow the on-nscreen 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).
  5. Use the sample cURL GET request below.
  6. Swap the Access token and Realm ID values with the “REPLACE_WITH” placeholders.
  7. 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'

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"}

The request response should match the sample server response.

Step 7: Get tools to test your code

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

Step 8: Develop your app

Your app ready to go! Get familiar with our API and build a demo app.