QuickBooks Online
Accounting integration for invoices, payments, and financial data
QuickBooks Online
Connect to QuickBooks Online to automate invoice creation, payment processing, customer management, and financial reporting.
Overview
QuickBooks Online is a cloud-based accounting platform for small to medium businesses. The integration supports:
- Customer Management - Create, update, and search customers
- Invoicing - Create, send, void, and track invoices
- Payments - Record and manage customer payments
- Bills (AP) - Create and manage vendor bills
- Vendors - Manage vendor records
- Chart of Accounts - Access and create accounts
- Financial Reports - Run P&L, Balance Sheet, and more
- Custom Queries - Execute custom queries
Prerequisites
- QuickBooks Online account (Plus, Essentials, or Simple Start)
- Admin access to configure OAuth connection
- Company file (Realm ID) for API access
Authentication
QuickBooks uses OAuth 2.0 for authentication via Nango.
Connect QuickBooks
Required Scopes
| Scope | Description |
|---|---|
com.intuit.quickbooks.accounting | Full accounting access |
Available Actions
Customer Actions
createCustomer
Create a new customer in QuickBooks.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
displayName | string | Yes | Display name (unique identifier) |
firstName | string | No | First name |
lastName | string | No | Last name |
companyName | string | No | Company name |
email | string | No | Primary email address |
phone | string | No | Phone number |
mobile | string | No | Mobile number |
billingAddress | object | No | Billing address |
notes | string | No | Internal notes |
active | boolean | No | Active status (default: true) |
getCustomer
Get a customer by ID.
updateCustomer
Update an existing customer.
findCustomerByEmail
Find a customer by email address.
listCustomers
List customers with optional filters.
Invoice Actions
createInvoice
Create a new invoice.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
customerId | string | Yes | Customer ID |
lines | array | Yes | Line items (at least one) |
lines[].description | string | No | Line item description |
lines[].amount | number | Yes | Line amount |
lines[].quantity | number | No | Quantity (default: 1) |
lines[].unitPrice | number | No | Unit price |
lines[].itemId | string | No | Product/Service ID |
dueDate | string | No | Due date (YYYY-MM-DD) |
invoiceDate | string | No | Invoice date (default: today) |
invoiceNumber | string | No | Custom invoice number |
customerMemo | string | No | Memo for customer |
privateNote | string | No | Internal note |
email | string | No | Email to send invoice to |
getInvoice
Get an invoice by ID.
sendInvoice
Send an invoice to the customer via email.
voidInvoice
Void an invoice.
updateInvoice
Update an existing invoice.
listInvoices
List invoices with optional filters.
Payment Actions
createPayment
Record a customer payment.
Parameters:
| Field | Type | Required | Description |
|---|---|---|---|
customerId | string | Yes | Customer ID |
amount | number | Yes | Payment amount |
paymentDate | string | No | Payment date (default: today) |
paymentMethodId | string | No | Payment method reference |
depositAccountId | string | No | Account to deposit to |
invoiceIds | array | No | Invoices to apply payment to |
referenceNumber | string | No | Check/reference number |
getPayment
Get a payment by ID.
voidPayment
Void a payment.
Bill (AP) Actions
createBill
Create a vendor bill (accounts payable).
getBill / updateBill / deleteBill
Vendor Actions
createVendor
Create a new vendor.
Account Actions
getAccountList
Get the chart of accounts.
Account Types: Bank, Accounts Receivable, Other Current Asset, Fixed Asset, Accounts Payable, Credit Card, Other Current Liability, Long Term Liability, Equity, Income, Cost of Goods Sold, Expense, Other Income, Other Expense
createAccount
Create a new account in the chart of accounts.
Report Actions
runReport
Run a financial report.
Available Reports:
| Report | Description |
|---|---|
ProfitAndLoss | Income statement |
BalanceSheet | Balance sheet |
CashFlow | Cash flow statement |
TrialBalance | Trial balance |
GeneralLedger | General ledger detail |
AgedReceivables | AR aging summary |
AgedPayables | AP aging summary |
CustomerIncome | Revenue by customer |
VendorExpenses | Expenses by vendor |
Query Action
query
Execute a custom QuickBooks query.
Webhook Triggers
QuickBooks webhooks can trigger workflows on data changes.
Event Types: Customer, Invoice, Payment, Bill, Vendor, Account, Purchase, SalesReceipt, Estimate
Example Workflow
Complete invoice workflow triggered by Stripe payment:
Rate Limits
| Limit | Value |
|---|---|
| API calls per minute | 500 |
| Batch operations | 30 records per batch |
| Query results | 1000 records max |
| Concurrent connections | 10 |
Troubleshooting
Common Errors
| Error | Cause | Solution |
|---|---|---|
realmId is required | Missing company ID | Ensure realmId is set in context or config |
SyncToken mismatch | Concurrent updates | Refetch record before update |
Business validation error | Invalid data | Check field formats and requirements |
Throttled | Rate limit exceeded | Implement exponential backoff |
Required Context Variables
QuickBooks actions require realmId (company ID) which can be provided via:
- Workflow variables: Set in workflow definition
- Step config: Pass explicitly in each step
- Connection metadata: Stored with OAuth connection