Skip to main content

QuickBooks

The QuickBooks plugin brings essential accounting capabilities directly into your ToolJet applications. It lets you create and update customers, generate invoices, record payments, manage vendors, and access financial reports and other QuickBooks data from one connected interface.

NOTE

Before following this guide, it is assumed that you have already completed the process of Using Marketplace plugins.

Connection​

To connect to QuickBooks, the following credentials are required:

  • Client ID: Enter your Client ID. This identifies your ToolJet application to QuickBooks.
  • Client Secret: Enter your Client Secret. This secret will be stored in the encrypted form.
  • Scope(s): Scope defines the permissions your ToolJet app will have in QuickBooks. The field is pre-filled with com.intuit.quickbooks.accounting. You can modify the scopes based on your use case.
    note

    Ensure the scopes entered in the ToolJet data source configuration exactly match the scopes configured in your QuickBooks application settings. Any mismatch between the configured scopes and the requested scopes may cause the OAuth authentication flow to fail or restrict access to certain QuickBooks resources.

  • Redirect URI: ToolJet automatically generates a Redirect URI. This redirect URI is required for completing the OAuth authentication flow.
  • Company ID: The Company ID (Realm ID) of the QuickBooks company whose data your queries read and write. It's required, and every query uses it for {companyid} in the endpoint path.
note

Queries are sent to the QuickBooks Online sandbox API (https://sandbox-quickbooks.api.intuit.com), so use the Company ID of a sandbox company and the development keys of your QuickBooks app.

Quickbooks Connection page
info

For detailed steps to generate the Client ID and Client Secret, refer to the QuickBooks documentation.

Supported Operations​

ToolJet supports multiple QuickBooks operations through REST API calls, enabling you to manage customers, invoices, payments, vendors, accounts, reports, and other QuickBooks resources directly within your application.

Quickbooks supported operations

COMPANY​

All QuickBooks API endpoints require a Company ID, which uniquely identifies the QuickBooks company account associated with the request. Queries are executed against the specified company's data.

MethodAPI EndpointDescription
POST/v3/company/{companyid}/accountAccount Create
GET/v3/company/{companyid}/account/{id}Account Read by Id
POST/v3/company/{companyid}/queryQuery (read all records with a QuickBooks query)
POST/v3/company/{companyid}/attachableAttachable Create
GET/v3/company/{companyid}/attachable/{id}Attachable Read by Id
POST/v3/company/{companyid}/uploadUpload Attachments
POST/v3/company/{companyid}/batchBatch
POST/v3/company/{companyid}/billBill Create
POST/v3/company/{companyid}/bill?operation=deleteBill Delete
GET/v3/company/{companyid}/bill/{id}Bill- Get by Id
POST/v3/company/{companyid}/billpaymentBill Payment Create
GET/v3/company/{companyid}/billpayment/{id}Bill Payment Read by Id
GET/v3/company/{companyid}/cdcCDC Read
POST/v3/company/{companyid}/classClass Create
GET/v3/company/{companyid}/class/{id}Class Read by Id
GET/v3/company/{companyid}/companyinfo/{companyid}Company Info Read by Id
POST/v3/company/{companyid}/creditmemoCredit Memo Create
GET/v3/company/{companyid}/creditmemo/{id}Credit Memo Read by Id
POST/v3/company/{companyid}/customerCustomer Create
GET/v3/company/{companyid}/customer/{id}Customer Read by Id
POST/v3/company/{companyid}/departmentDepartment Create
GET/v3/company/{companyid}/department/{id}Department Read by Id
POST/v3/company/{companyid}/depositDeposit Create
GET/v3/company/{companyid}/deposit/{id}Deposit Read by Id
POST/v3/company/{companyid}/employeeEmployee Create
GET/v3/company/{companyid}/employee/{id}Employee Read by Id
POST/v3/company/{companyid}/estimateEstimate Create
GET/v3/company/{companyid}/estimate/{id}Estimate Read by Id
GET/v3/company/{companyid}/exchangerateExchange Rate - Get Details
POST/v3/company/{companyid}/inventoryadjustmentCreate Inventory Adjustment
POST/v3/company/{companyid}/invoiceInvoice Create
GET/v3/company/{companyid}/invoice/{id}Invoice Read by Id
POST/v3/company/{companyid}/itemItem Create
GET/v3/company/{companyid}/item/<id>Item Read by Id
POST/v3/company/{companyid}/journalentryJournal Entry Create
GET/v3/company/{companyid}/journalentry/{id}Journal Entry Read by Id
POST/v3/company/{companyid}/paymentPayment Create
GET/v3/company/{companyid}/payment/{id}Payment Read by Id
POST/v3/company/{companyid}/paymentmethodPayment Method Create
GET/v3/company/{companyid}/paymentmethod/{id}Payment Method Read by Id
GET/v3/company/{companyid}/preferencesPreferences Read
POST/v3/company/{companyid}/preferencesPreferences Update
POST/v3/company/{companyid}/purchasePurchase Create
GET/v3/company/{companyid}/purchase/{id}Purchase Read by Id
POST/v3/company/{companyid}/purchaseorderPurchase Order Create
GET/v3/company/{companyid}/purchaseorder/{id}Purchase Order Read by Id
POST/v3/company/{companyid}/refundreceiptRefund Receipt Create
GET/v3/company/{companyid}/refundreceipt/{id}Refund Recipt- Read by Id
GET/v3/company/{companyid}/reports/AccountListReport Account List
GET/v3/company/{companyid}/reports/AgedPayableDetailReport Aged Payable Detail
GET/v3/company/{companyid}/reports/AgedPayablesReport Aged Payables
GET/v3/company/{companyid}/reports/AgedReceivableDetailReport Aged Receivable Detail
GET/v3/company/{companyid}/reports/AgedReceivablesReport Aged Receivables
GET/v3/company/{companyid}/reports/BalanceSheetReport Balance Sheet
GET/v3/company/{companyid}/reports/CashFlowReport Cash Flow
GET/v3/company/{companyid}/reports/ClassSalesReport Class Sales
GET/v3/company/{companyid}/reports/CustomerBalanceReport Customer Balance
GET/v3/company/{companyid}/reports/CustomerBalanceDetailReport Customer Balance Detail
GET/v3/company/{companyid}/reports/CustomerIncomeReport Customer Income
GET/v3/company/{companyid}/reports/CustomerSalesReport Customer Sales
GET/v3/company/{companyid}/reports/DepartmentSalesReport Department Sales
GET/v3/company/{companyid}/reports/GeneralLedgerReport General Ledger
GET/v3/company/{companyid}/reports/InventoryValuationSummaryReport Inventory Valuation Summary
GET/v3/company/{companyid}/reports/ItemSalesReport Item Sales
GET/v3/company/{companyid}/reports/ProfitAndLossReport Profit And Loss
GET/v3/company/{companyid}/reports/ProfitAndLossDetailReport Profit And Loss Detail
GET/v3/company/{companyid}/reports/TrialBalanceReport Trial Balance
GET/v3/company/{companyid}/reports/TransactionListReport Transaction List
GET/v3/company/{companyid}/reports/VendorBalanceReport Vendor Balance
GET/v3/company/{companyid}/reports/VendorBalanceDetailReport Vendor Balance Detail
GET/v3/company/{companyid}/reports/VendorExpensesReport Vendor Expenses
POST/v3/company/{companyid}/salesreceiptSales Receipt Create
GET/v3/company/{companyid}/salesreceipt/{id}Sales Receipt Read by Id
POST/v3/company/{companyid}/taxagencyTax Agency Create
GET/v3/company/{companyid}/taxagency/{id}Tax Agency Read by Id
GET/v3/company/{companyid}/taxcode/{id}Tax Code Read by Id
GET/v3/company/{companyid}/taxrate/{id}Tax Rate Read by Id
POST/v3/company/{companyid}/taxservice/taxcodeTax Service Create
POST/v3/company/{companyid}/termTerm Create
GET/v3/company/{companyid}/term/{id}Term Read by Id
POST/v3/company/{companyid}/timeactivityTime Activity Create
POST/v3/company/{companyid}/transferTransfer Create
GET/v3/company/{companyid}/transfer/{id}Transfer Read by Id
POST/v3/company/{companyid}/vendorVendor Create
GET/v3/company/{companyid}/vendor/{id}Vendor Read by Id
POST/v3/company/{companyid}/vendorcreditVendor Credit Create
GET/v3/company/{companyid}/vendorcredit/{id}Vendor Credit Read by Id

Example Queries​

Get Account Details​

Operation : GET /v3/company/{companyid}/account/{id}

This query retrieves the account details for the account with the given id. It can be used to fetch information such as account type, balance, classification, and other account-related metadata from QuickBooks. The companyid is not entered here — it is taken automatically from the Company ID configured on the data source connection.

Required Parameter:

  • id

Optional Parameter:

  • minorversion
Quickbooks example query GET
Response Example
{
"Account": {
"Name": "Services",
"SubAccount": false,
"FullyQualifiedName": "Services",
"Active": true,
"Classification": "Revenue",
"AccountType": "Income",
"AccountSubType": "ServiceFeeIncome",
"CurrentBalance": 0,
"CurrentBalanceWithSubAccounts": 0,
"CurrencyRef": {
"value": "AUD",
"name": "Australian Dollar"
},
"domain": "QBO",
"sparse": false,
"Id": "1",
"SyncToken": "0",
"MetaData": {
"CreateTime": "2025-12-07T15:27:58-08:00",
"LastUpdatedTime": "2025-12-07T15:27:58-08:00"
}
},
"time": "2026-05-22T03:45:46.022-07:00"
}

Update an Account​

Operation : POST /v3/company/{companyid}/account

This query creates or updates an account in QuickBooks. It can be used to modify existing account information such as account name, account type, classification, or other account properties. The companyid is not entered here — it is taken automatically from the Company ID configured on the datasource connection.

Optional Parameters:

  • minorversion
  • requestbody
Quickbooks example query POST
Response Example
{
"Account": {
"Name": "MyJobs_testing",
"SubAccount": false,
"FullyQualifiedName": "MyJobs_testing",
"Active": true,
"Classification": "Asset",
"AccountType": "Accounts Receivable",
"AccountSubType": "AccountsReceivable",
"CurrentBalance": 0,
"CurrentBalanceWithSubAccounts": 0,
"CurrencyRef": {
"value": "AUD",
"name": "Australian Dollar"
},
"domain": "QBO",
"sparse": false,
"Id": "1150040002",
"SyncToken": "0",
"MetaData": {
"CreateTime": "2026-05-22T03:49:10-07:00"
}
},
"time": "2026-05-22T03:49:10.529-07:00"
}