Overview
Pre-built tooling
✅ Authorization
✅ Authorization
✅ Read & write data
✅ Read & write data
| Tools | Status |
|---|---|
| Pre-built integrations | ✅ |
| API unification | ✅ |
| 2-way sync | ✅ |
| Webhooks from Nango on data modifications | ✅ |
| Real-time webhooks from 3rd-party API | 🚫 (time to contribute: <48h) |
| Proxy requests | ✅ |
✅ Observability & data quality
✅ Observability & data quality
| Tools | Status |
|---|---|
| HTTP request logging | ✅ |
| End-to-type type safety | ✅ |
| Data runtime validation | ✅ |
| OpenTelemetry export | ✅ |
| Slack alerts on errors | ✅ |
| Integration status API | ✅ |
✅ Customization
✅ Customization
| Tools | Status |
|---|---|
| Create or customize use-cases | ✅ |
| Pre-configured pagination | 🚫 (time to contribute: <48h) |
| Pre-configured rate-limit handling | 🚫 (time to contribute: <48h) |
| Per-customer configurations | ✅ |
Accounts
| Function name | Description | Type | Source code |
|---|---|---|---|
create-account | Creates a single account in QuickBooks. | Action | 🔗 Github |
update-account | Updates a single account in QuickBooks. | Action | 🔗 Github |
accounts | Fetches all accounts in QuickBooks. Handles both active and archived accounts, saving or deleting them based on their status. | Sync | 🔗 Github |
Bill Payments
Bills
Credit Memos
Customers
| Function name | Description | Type | Source code |
|---|---|---|---|
create-customer | Creates a single customer in QuickBooks. | Action | 🔗 Github |
update-customer | Update a single customer in QuickBooks. | Action | 🔗 Github |
customers | Fetches all QuickBooks customers. Handles both active and archived customers, saving or deleting them based on their status. | Sync | 🔗 Github |
Deposits
Invoices
| Function name | Description | Type | Source code |
|---|---|---|---|
create-invoice | Creates a single invoice in QuickBooks. | Action | 🔗 Github |
update-invoice | Updates a single invoice in QuickBooks. | Action | 🔗 Github |
invoices | Fetches all invoices in QuickBooks. Handles both active and voided invoices, saving or deleting them based on their status. | Sync | 🔗 Github |
Items
Journal Entries
Payments
Purchase Orders
Purchases
Transfers
Access requirements
| Pre-Requisites | Status | Comment |
|---|---|---|
| Paid dev account | ✅ Not required | Free, self-signup for an Intuit Developer account. |
| Paid test account | ✅ Not required | Development/sandbox accounts can be created for free from your Developer account. |
| Partnership | ✅ Not required | |
| App review | ✅ Not required | Only required for apps published to the Intuit App Store. |
| Security audit | ✅ Not required |
Setup guide
1
Create an Intuit Developer account
Go to Intuit Developer signup page and create a free account.
2
Create a new app in your Developer account
- From your Developer Dashboard, navigate to My Hub > App Dashboard, then click on the Add button.
- Select QuickBooks Online and Payments, click Next and provide a name for your app.
- Click Next to proceed with adding permissions to your app.
- Once you have added permissions, click Done and confirm the permissions you selected. Your application will be created.
3
Configure OAuth settings
In the app you just created:
- Navigate to the Settings page, then go to the Redirect URIs tab and add the following URL:
https://api.nango.dev/oauth/callback. - Save your changes.
4
Obtain API credentials
- Still in your created app, navigate to Keys and credentials page and toggle the Show credentials button to locate your app’s credentials.
- Copy the Client ID and Client Secret.
- You will need these credentials when configuring your integration in Nango.
5
Create a development/sandbox account for testing
If you don’t have a QuickBooks account already:
- From your Developer Dashboard, go to My Hub > Sandbox, then click Add to create a new Sandbox company.
- Follow the prompts to create a test company.
- Note the Company ID/Realm ID as you’ll need it for API requests.
6
Next
Follow the Quickstart.
Useful links
Contribute useful links by editing this page
Common Scopes
| Scope | Description |
|---|---|
| com.intuit.quickbooks.accounting | Access to QuickBooks accounting data |
| com.intuit.quickbooks.payment | Access to QuickBooks payments data |
| profile | Access to user profile information |
| Access to user email address | |
| phone | Access to user phone number |
| address | Access to user address |
| openid | Required for OpenID Connect authentication |
API gotchas
- QuickBooks requires a company ID/realmId for each API request. To obtain this when creating a new connection on Nango, go to Settings and select Your Account and Settings. On the Your Account page, your Company ID (found under the Billing & Subscription tab) will be displayed at the top. Nango can automatically retrieve this for you, or you can manually override it by specifying the realmId when creating a new connection.
- You can use getConnection in your integration function to retrieve it, or when you fetch the Connection credentials with the REST API or SDK
- For sandbox testing, use the
quickbooks-sandboxintegration in Nango instead of the regularquickbooksintegration. - QuickBooks access tokens expire after 1 hour, but Nango automatically handles token refresh for you.
Contribute API gotchas by editing this page