Complete API reference for the QuickBooks Online integration.
This reference covers the QuickBooks Online-specific endpoints and data types available through Sync2Books.
Retrieve chart of accounts from QuickBooks Online.
GET /connections/{connectionId}/accounts
Response:
{
"accounts": [
{
"id": "64",
"name": "Office Expenses",
"type": "Expense",
"subType": "OfficeExpenses",
"status": "Active",
"fullyQualifiedName": "Office Expenses"
}
]
}
Retrieve tax rates from QuickBooks Online.
Response:
Retrieve vendors/suppliers from QuickBooks Online.
Response:
Retrieve customers from QuickBooks Online.
Response:
Tracking categories
Get tracking categories
Retrieve tracking categories (classes, locations, etc.) from QuickBooks Online.
Response:
Tracking category
Expense transaction mapping
QuickBooks Online expense structure
When syncing expenses to QuickBooks Online, they're mapped to QuickBooks Purchase transactions:
Supported operations
Creates a Purchase transaction in QuickBooks Online.
Endpoint: POST /expenses/{connectionId}
QuickBooks mapping:
merchantName → EntityRef.name
bankAccountRef → AccountRef (payment account)
lines[].accountRef → Line[].AccountBasedExpenseLineDetail.AccountRef
lines[].taxRateRef → Line[].AccountBasedExpenseLineDetail.TaxCodeRef
Upload attachment
Creates an Attachable in QuickBooks Online linked to the expense.
Endpoint: POST /connections/{connectionId}/syncs/{syncId}/transactions/{transactionId}/attachments
QuickBooks mapping:
File → Attachable.AttachRef linked to Purchase transaction
QuickBooks-specific errors
Error Code
Description
Solution
Verify account exists and is active
Verify tax rate exists and is active
Verify supplier exists and is active
Verify customer exists and is active
Wait and retry with exponential backoff
QuickBooks Online rate limits vary by subscription tier:
Simple Start: 500 API calls per minute
Essentials: 500 API calls per minute
Plus: 500 API calls per minute
Advanced: 500 API calls per minute
Sync2Books automatically handles rate limits and retries requests when needed.
Cache reference data - Store account, tax rate, and supplier IDs to reduce API calls
Batch expenses - Create multiple expenses in a single request
Handle errors gracefully - Implement retry logic for transient failures
Monitor sync status - Always check sync batch status after creating expenses
Use company-level defaults - Reduce transaction complexity