QuickBooks integration

Cloud accounting: invoices, customers, vendors, payments, items, reports

Help CentreConnectors

Overview

QuickBooks Online is the dominant cloud accounting platform in the US, Canada, UK, AU. The Automize QuickBooks connector covers invoices, customers, vendors, payments, products/services, journal entries, and reports.

  • Regions: QuickBooks Online has regional deployments (US, CA, UK, AU). API endpoints differ per region – connector routes based on your company region picked at OAuth time.
  • Plans: Simple Start, Essentials, Plus, Advanced – all expose the API. Advanced features (custom roles, batch invoices) need Advanced plan.

Setting up the connection

Auth type: OAuth 2.0 (Authorization Code).

  1. Sign in to developer.intuit.com → My Apps → Create an app → QuickBooks Online and Payments.
  2. Set Redirect URI to the one in the Automize QuickBooks connector dialog.
  3. Add scope com.intuit.quickbooks.accounting (read+write) – payment scope only if you use the Payments API.
  4. Copy Client ID + Client Secret.
  5. In Automize, open Settings → Connectors → QuickBooks → Add connection. Paste credentials, click Connect with QuickBooks, select the company to connect.

Scopes required:

  • com.intuit.quickbooks.accounting

Find your credentials at https://developer.intuit.com/app/developer/myapps.


Rate limits

QuickBooks enforces ~500 requests/min/realm and ~10/sec burst. Connector retries 429 with backoff. Batch API can do up to 30 operations in one call – use for bulk loads.


Data model

Realm (company) is the tenant:

    Customer ─┬─ Invoices ─── Payments
              └─ Sales Receipts
    Vendor ─── Bills ─── BillPayments
    Item (Product/Service) ── used on invoice lines
    Account (Chart of Accounts) ── used on journal entries
    JournalEntry ── debit/credit pairs against accounts
    Class / Department (job costing dimensions)

All records have a realmID-scoped numeric Id + SyncToken (optimistic
locking version).

Available operations

30 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Balance sheetAccounts & ReportsGet balance sheet report from QuickBooks.
List accountsAccounts & ReportsQuery chart of accounts in QuickBooks.
Profit and lossAccounts & ReportsGet profit and loss report from QuickBooks.
Custom queryAccounts & ReportsExecute a custom QuickBooks query using the QB query language.
Create billBillsCreate a new bill (accounts payable) in QuickBooks.
List billsBillsQuery bills/payables in QuickBooks.
Create customerCustomers & VendorsCreate a new customer in QuickBooks.
Create vendorCustomers & VendorsCreate a new vendor in QuickBooks.
Get customerCustomers & VendorsGet a customer by ID from QuickBooks.
Get vendorCustomers & VendorsGet a vendor by ID from QuickBooks.
List customersCustomers & VendorsQuery customers in QuickBooks.
List vendorsCustomers & VendorsQuery vendors/suppliers in QuickBooks.
Create credit memoGeneralCreate a QuickBooks credit memo.
Create depositGeneralCreate a QuickBooks deposit.
Create estimateGeneralCreate a QuickBooks estimate/quote.
Create purchaseGeneralCreate a QuickBooks purchase/expense.
Get Company InfoGeneralGet company information
List estimatesGeneralList QuickBooks estimates.
List Tax CodesGeneralQuery tax codes
Update customerGeneralUpdate a QuickBooks customer.
Create invoiceInvoicesCreate a new invoice in QuickBooks.
Delete invoiceInvoicesDelete/void an invoice in QuickBooks.
Get invoiceInvoicesGet an invoice by ID from QuickBooks.
List invoicesInvoicesQuery invoices in QuickBooks.
Send invoiceInvoicesEmail an invoice to the customer from QuickBooks.
Update invoiceInvoicesUpdate an existing invoice in QuickBooks (full update, include SyncToken).
Create paymentItems & PaymentsRecord a payment received in QuickBooks.
Get itemItems & PaymentsGet an item by ID from QuickBooks.
List itemsItems & PaymentsQuery products/services in QuickBooks.
List paymentsItems & PaymentsQuery payments received in QuickBooks.

Operations

Balance sheet

Get balance sheet report from QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext

Create bill

Create a new bill (accounts payable) in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Bill data (JSON) fieldsYestextarea

Tips

  • VendorRef + Line[] (Each line: AccountBasedExpenseLineDetail.AccountRef).

Create credit memo

Create a QuickBooks credit memo.

ParameterRequiredTypeDescription
Realm Id realm_idYestext

Create customer

Create a new customer in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Customer data (JSON) fieldsYestextarea

Tips

  • DisplayName required + unique. PrimaryEmailAddr.Address + PrimaryPhone.FreeFormNumber typical.

Errors

  • Duplicate Name Exists Error – DisplayName already in use. QuickBooks is case-insensitive but allows differing spaces / punctuation.

Create deposit

Create a QuickBooks deposit.

ParameterRequiredTypeDescription
Realm Id realm_idYestext

Create estimate

Create a QuickBooks estimate/quote.

ParameterRequiredTypeDescription
Realm Id realm_idYestext

Create invoice

Create a new invoice in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Invoice data (JSON) fieldsYestextarea

Tips

  • CustomerRef + Line[] required. Each line: DetailType (SalesItemLineDetail), Amount, SalesItemLineDetail.ItemRef.

Create payment

Record a payment received in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Payment data (JSON) fieldsYestextarea

Tips

  • CustomerRef + TotalAmt + Line (LinkedTxn pointing at the invoice).
  • DepositToAccountRef tells QuickBooks where the money went.

Create purchase

Create a QuickBooks purchase/expense.

ParameterRequiredTypeDescription
Realm Id realm_idYestext

Create vendor

Create a new vendor in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Vendor data (JSON) fieldsYestextarea

Tips

  • DisplayName required + unique within Vendor namespace.

Delete invoice

Delete/void an invoice in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Invoice ref (JSON, include Id+SyncToken) fieldsYestextarea

Tips

  • Hard-delete. Use Void instead unless legally required to remove.

Get Company Info

Get company information

ParameterRequiredTypeDescription
Realm Id realm_idYestext
Realm Id realm_idYestext

Get customer

Get a customer by ID from QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Customer ID customer_idYestext

Tips

  • Returns customer + balance + ParentRef (for sub-customers).

Get invoice

Get an invoice by ID from QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Invoice ID invoice_idYestext

Tips

  • Returns invoice + lines + EmailStatus.

Get item

Get an item by ID from QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Item ID item_idYestext

Get vendor

Get a vendor by ID from QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Vendor ID vendor_idYestext

Tips

  • Returns vendor + balance + 1099 flag.

List accounts

Query chart of accounts in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext

Tips

  • Chart of accounts. Filter by AccountType (Income, Expense, Asset, Liability, Equity).

List bills

Query bills/payables in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext

Tips

  • Vendor bills (money you owe).

List customers

Query customers in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext

Tips

  • Use the SQL-like Query: SELECT * FROM Customer WHERE Active=true MAXRESULTS 100.
  • MAXRESULTS max 1000. Page via STARTPOSITION.

List estimates

List QuickBooks estimates.

ParameterRequiredTypeDescription
Realm Id realm_idYestext

List invoices

Query invoices in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext

Tips

  • Query: SELECT * FROM Invoice WHERE Balance > 0 ORDERBY MetaData.LastUpdatedTime DESC.

List items

Query products/services in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext

Tips

  • Products + Services. Filter by Type: Inventory, Service, NonInventory.

List payments

Query payments received in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext

Tips

  • Payments received. Linked to invoices via LinkedTxn.

List Tax Codes

Query tax codes

ParameterRequiredTypeDescription
Realm Id realm_idYestext

List vendors

Query vendors/suppliers in QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext

Tips

  • Same query contract as Customer. Use Vendor entity.

Profit and loss

Get profit and loss report from QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext

Custom query

Execute a custom QuickBooks query using the QB query language.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Query queryYestextarea

Send invoice

Email an invoice to the customer from QuickBooks.

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Invoice ID invoice_idYestext

Tips

  • Emails the invoice to the customer's PrimaryEmailAddr. Use ?sendTo=<email> to override.

Update customer

Update a QuickBooks customer.

ParameterRequiredTypeDescription
Realm Id realm_idYestext

Tips

  • Send sparse=true + SyncToken (current version). QuickBooks uses optimistic locking – fetch current, increment SyncToken, send.

Update invoice

Update an existing invoice in QuickBooks (full update, include SyncToken).

ParameterRequiredTypeDescription
Realm ID realm_idYestext
Invoice data (JSON, include SyncToken) fieldsYestextarea

Tips

  • sparse=true + SyncToken. Same locking model as Customer.

FAQ

Sandbox vs production?
Sandbox is separate (sandbox.api.intuit.com), with seeded test data. Create a sandbox app + sandbox company at developer.intuit.com. Different OAuth tokens – use a separate Automize connection.
SyncToken – what is it?
Optimistic locking. Every entity has a SyncToken that increments on each update. Send the current SyncToken with your update – if it's stale, you get an error. Always Get-then-Update.
sparse=true – when?
Default Update replaces every writable field with what you send. sparse=true updates only the fields present in your payload (PATCH-style). Almost always use sparse=true.
Multiple companies – one connection?
Each QuickBooks company (realm) = one Automize QuickBooks connection. Authorise per realm.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.